วิธีเรียงลำดับรายการที่ลิงก์ใน Java

ผู้เขียน: Randy Alexander
วันที่สร้าง: 23 เมษายน 2021
วันที่อัปเดต: 1 ธันวาคม 2024
Anonim
How to Code Selection Sort in Java
วิดีโอ: How to Code Selection Sort in Java

เนื้อหา

วิธีจัดระเบียบรายการที่ลิงก์ใน Java รายการที่ปิดเป็นหนึ่งในโครงสร้างข้อมูลที่สำคัญในโลกแห่งการเขียนโปรแกรม เป็นองค์กรของโหนดที่มีข้อมูลและการอ้างอิงที่ชี้ไปยังโหนดถัดไป ในการเรียงลำดับรายการที่ลิงก์ใน Java มีคลาสรายการที่ทำงานกับเฟรมเวิร์ก Collections ซึ่งใช้อัลกอริทึมเป็นการเรียงลำดับ


คำสั่ง

การจัดระเบียบรายการที่เชื่อมโยงใน Java (ภาพสอบปากคำโดย danimages จาก Fotolia.com)

    เรียงลำดับรายการที่ลิงก์ใน Java

  1. ประกาศรายการที่เชื่อมโยงโดยการสร้างวัตถุ LinkedList ใหม่และกำหนดตัวแปร LinkedList LinkedList มาจากคลาส List ทั่วไปดังนั้นเมธอดใด ๆ ที่ยอมรับ List จะได้รับการยอมรับโดยอ็อบเจกต์ LinkedList ด้วย "" LinkedList l = new LinkedList (); ""

  2. เพิ่มวัตถุประเภทเดียวกัน (เช่นจำนวนเต็ม) ลงในรายการ สิ่งเหล่านี้สามารถเป็นวัตถุประเภทใดก็ได้ แต่เพื่อเรียงลำดับรายการที่เชื่อมโยงทั้งหมดจะต้องเป็นประเภทเดียวกัน

  3. ใช้การ List.addFirst วิธีการแทรกวัตถุใหม่ที่ด้านบนของรายการเพื่อให้วัตถุใด ๆ ที่คุณเพิ่มอยู่ในลำดับที่ตรงกันข้าม ถ้าคุณต้องการเพิ่มลงในรายการให้ใช้เมธอด List.addLast "" list.addFirst (1); list.addFirst (3); list.addFirst (2); "

  4. ใช้ตัววนซ้ำเพื่อวนซ้ำรายการและพิมพ์ก่อนและหลังที่คุณเห็นว่าวิธีการเรียงลำดับทำอะไร "" สำหรับ (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());} "


    จัดเรียงโดยใช้การเปรียบเทียบเริ่มต้นและการกำหนดเอง

  1. เรียงลำดับรายการด้วยตัวเปรียบเทียบเริ่มต้น เครื่องมือเปรียบเทียบเป็นวัตถุที่เปรียบเทียบสองวัตถุ วัตถุตัวเปรียบเทียบเริ่มต้นใช้ตัวดำเนินการที่เล็กลงดังนั้นรายการจะเรียงตามลำดับจากน้อยไปหามาก หากต้องการเรียงลำดับรายการให้ใช้วิธีการคงที่ Collections.sort "" Collections.sort (รายการ); ""

  2. y) {return -1; "> เรียงลำดับรายการด้วยตัวเปรียบเทียบแบบกำหนดเองโดยการเขียนคลาสที่ใช้อินเทอร์เฟซการเปรียบเทียบและส่งผ่านไปยังอินสแตนซ์เป็นอาร์กิวเมนต์การสั่งซื้อคลาสที่ใช้ตัวเปรียบเทียบนั้น "GreaterThan คลาสสาธารณะใช้ตัวเปรียบเทียบอื่นหาก (x == y) {return 0;} else {return 1;}}}"

  3. ใช้การเรียกไปยัง Collections.sort โดยส่งผ่านอินสแตนซ์ใหม่ของ GreaterThan เป็นอาร์กิวเมนต์ที่สอง เนื่องจากวัตถุที่มีขนาดใหญ่กว่าจะอยู่ข้างหน้าวัตถุอื่น ๆ รายการจะถูกเรียงลำดับจากมากไปน้อยแทนที่จะเรียงลำดับจากน้อยไปหามาก อีกทางเลือกหนึ่งถ้าคุณเรียงลำดับรายการวัตถุจากคลาสแบบกำหนดเองที่คุณพิมพ์ด้วยตัวเองคลาสนี้สามารถใช้อินเทอร์เฟซที่เปรียบเทียบได้แทนการใช้คลาส Comparator ที่แยกต่างหาก "" Collections.sort (รายการใหม่ GreaterThan ()); ""


เคล็ดลับ

  • มันเป็นปัญหาที่จะใช้จำนวนเต็มเพื่อวนในวงจรและวิธีการ List.size () การวนซ้ำรายการที่ปิดคือการดำเนินการคำนวณที่มีราคาแพง เมื่อใช้โอเปอเรเตอร์ดัชนี (เช่น l [2]) ในคำสั่งใด ๆ จาวาจะต้องวนซ้ำรายการจนกว่าจะถึงดัชนี 2 สำหรับรายการขนาดเล็กนี่เป็นปัญหาอย่างไรก็ตามมีบางอย่างที่ยิ่งใหญ่ การใช้ตัวดำเนินการดัชนีเพื่อทำซ้ำจะกลายเป็นสิ่งที่ต้องใช้ทรัพยากรจำนวนมาก
  • ไม่ว่าวัตถุ List จะถูกนำมาใช้อย่างไรเนื่องจาก LinkedList ใช้อินเทอร์เฟซเดียวกัน
  • วิธีการเปรียบเทียบควรกลับไปที่ -1 หาก arg0 ถูกสั่งก่อน arg1, 0 ถ้ามันถูกสั่งเท่า ๆ กันและ 1 ถ้า arg1 ถูกสั่งก่อน arg0

การเตือน

  • วัตถุตัววนซ้ำทำให้แน่ใจว่าแต่ละโหนดในรายการเข้าชมเพียงครั้งเดียว สิ่งนี้เป็นสิ่งสำคัญที่ต้องจำไว้ตั้งแต่เข้ามาเยี่ยมเราโดยไม่จำเป็นต้องใช้โครงสร้างข้อมูลไปในทางที่ผิดที่โปรแกรมทำงานผิดปกติ

ผ้านวมเย็บปะติดปะต่อกันหรือที่เรียกว่าผ้านวมเย็บปะติดปะต่อกันได้ง่ายเหมือนผ้าสี่เหลี่ยมหรือสามารถห่อมากกว่านั้น ช่างเย็บที่มีประสบการณ์มากขึ้นอาจรวมถึงรูปสามเหลี่ยมรูปสามเหลี่ยมหรือแม้แต่รูปแบบต่างๆ ส...

พื้นลามิเนตนั้นไม่เพียง แต่ดึงดูดความสนใจเท่านั้นผู้เข้าพักจึงคิดว่าพื้นใต้เท้าเป็นพื้นไม้จริง ๆ มันน่าแปลกใจที่พบว่าไม้ไม่ได้ใช้ในพื้นลามิเนตและเจ้าของไม่ต้องเสียเวลาในการบำรุงรักษามากนัก อย่างไรก็ตา...

น่าสนใจ