คำถามติดแท็ก sorting

สำหรับคำถามเกี่ยวกับอัลกอริทึมการเรียงลำดับความเร็วและความซับซ้อน

2
อัลกอริทึมการเรียงลำดับหมายความว่า“ เสถียร” หมายความว่าอย่างไร
ในการอ่านเกี่ยวกับอัลกอริทึมการเรียงลำดับต่าง ๆ ที่ฉันเคยเห็นมันบอกว่าบางตัวเป็น "เสถียร" และบางอันไม่ได้ หมายความว่าอย่างไรและการแลกเปลี่ยนใดที่เกี่ยวข้องกับพื้นฐานนั้นเมื่อเลือกอัลกอริทึม
43 sorting 

6
ฉันต้องการเขียนอัลกอริทึม "ultimate shuffle" เพื่อเรียงลำดับคอลเลกชัน mp3 ของฉัน
ฉันกำลังมองหาข้อเสนอแนะ pseudocode สำหรับจัดเรียงไฟล์ mp3 ของฉันในทางที่หลีกเลี่ยงชื่อและศิลปินซ้ำ ฉันฟัง crooners - Frank Sinatra, Tony Bennett, Ella Fitzgerald ฯลฯ ร้องเพลงมาตรฐานเก่า ศิลปินแต่ละคนบันทึกเพลงเดียวกันหลายเพลง - Fly Me To The Moon, The Way You Look Tonight, Stardust ฯลฯ เป้าหมายของฉันคือการจัดเรียงเพลง (หรือสั่งซื้อเพลย์ลิสต์) ด้วยพื้นที่สูงสุดระหว่างศิลปินและชื่อเพลง ดังนั้นถ้าฉันมี 2,000 เพลงและ 20 เพลงเป็นโดยเอลล่าฉันอยากจะได้ยินเธอเพียงครั้งเดียวในทุก ๆ 100 เพลง หากศิลปิน 10 คนร้องเพลง Fly Me To The Moon ฉันอยากได้ยินทุก …


4
ทำไมวิธีการเรียงลำดับบางอย่างจึงจัดเรียง 1, 10, 2, 3 …?
ฉันสังเกตเห็นมากกว่าวิธีการเรียงลำดับตัวเลขหลายวิธีดูเหมือนจะเรียงลำดับตาม 1, 10, 2, 3 ... แทนที่จะเป็น 1, 2, 3, 10 ... ฉันมีปัญหาในการหาสถานการณ์ที่ฉันต้องการ ต้องการวิธีแรกและในฐานะผู้ใช้ฉันรู้สึกหงุดหงิดเมื่อใดก็ตามที่ฉันเห็นมันในทางปฏิบัติ มีกรณีการใช้งานที่ถูกกฎหมายสำหรับรูปแบบแรกในช่วงที่สองหรือไม่ ถ้าเป็นเช่นนั้นพวกเขาคืออะไร? ถ้าไม่ใช่สไตล์การเรียงลำดับแรกจะเกิดขึ้นได้อย่างไร ชื่ออย่างเป็นทางการของแต่ละวิธีการเรียงลำดับคืออะไร?
30 sorting 

14
อัลกอริธึมการเรียงลำดับที่คลุมเครือที่สุดที่คุณรู้คืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันเพิ่งอ่านเกี่ยวกับcyclesortผ่านทางโพสต์บล็อก sortvis.org นี่อาจเป็นสิ่งที่คลุมเครือที่สุดเท่าที่ฉันเคยได้ยินมาเพราะใช้คณิตศาสตร์ที่ฉันไม่คุ้นเคย อะไรคือสิ่งที่คลุมเครือที่สุดที่คุณรู้

3
วิธีจัดเก็บข้อมูลที่สั่งซื้อในฐานข้อมูลเชิงสัมพันธ์
ฉันพยายามที่จะเข้าใจวิธีการจัดเก็บข้อมูลที่สั่งซื้ออย่างถูกต้องในฐานข้อมูลเชิงสัมพันธ์ ตัวอย่าง: สมมติว่าฉันมีเพลย์ลิสต์ประกอบด้วยเพลง ภายในฐานข้อมูลเชิงสัมพันธ์ของฉันฉันมีสารบัญPlaylistsประกอบด้วยข้อมูลเมตาบางส่วน (ชื่อผู้สร้าง ฯลฯ ) ฉันยังมีตารางที่เรียกว่าSongsที่มีข้อมูลplaylist_idรวมถึงข้อมูลเฉพาะเพลง (ชื่อศิลปินระยะเวลา ฯลฯ ) ตามค่าเริ่มต้นเมื่อมีการเพิ่มเพลงใหม่ลงในเพลย์ลิสต์เพลงจะถูกต่อท้าย เมื่อสั่งซื้อบน Song-ID (น้อยไปหามาก) คำสั่งซื้อจะเป็นลำดับของการเพิ่ม แต่ถ้าหากผู้ใช้สามารถสั่งซื้อเพลงในรายการเพลงได้อีกครั้ง ฉันคิดไอเดียสองสามข้อแต่ละข้อมีข้อดีและข้อเสีย: คอลัมน์เรียกว่าorderซึ่งเป็นจำนวนเต็ม เมื่อเพลงถูกย้ายลำดับของเพลงทั้งหมดระหว่างตำแหน่งเก่าและตำแหน่งใหม่จะเปลี่ยนไปเพื่อให้สอดคล้องกับการเปลี่ยนแปลง ข้อเสียของเรื่องนี้คือต้องมีการค้นหาจำนวนมากในแต่ละครั้งที่มีการย้ายเพลงและอัลกอริทึมการย้ายนั้นไม่สำคัญกับตัวเลือกอื่น ๆ คอลัมน์ที่เรียกว่าorderซึ่งเป็นทศนิยม ( NUMERIC) เมื่อเพลงถูกย้ายมันจะถูกกำหนดค่าจุดลอยตัวระหว่างตัวเลขสองตัวที่อยู่ติดกัน ข้อเสียเปรียบ: เขตข้อมูลทศนิยมใช้เนื้อที่มากขึ้นและอาจเป็นไปได้ที่จะใช้ความแม่นยำจนหมดเว้นแต่จะได้รับการดูแลเพื่อกระจายช่วงใหม่หลังจากการเปลี่ยนแปลงทุกครั้ง อีกวิธีหนึ่งก็คือการมีpreviousและnextฟิลด์ที่อ้างอิงเพลงอื่น ๆ (หรือเป็น NULL ในกรณีของเพลงแรก, resp. เพลงสุดท้ายในเพลย์ลิสต์ในขณะนี้โดยทั่วไปคุณสร้างรายการที่ลิงก์ ) ข้อเสียเปรียบ: ข้อความค้นหาเช่น 'find Xth Song ในรายการ' ไม่ใช่เวลาคงที่อีกต่อไป แต่จะเป็นเวลาเชิงเส้นแทน ขั้นตอนใดที่ใช้บ่อยที่สุดในการปฏิบัติ? ขั้นตอนใดที่เร็วที่สุดสำหรับฐานข้อมูลขนาดกลางถึงขนาดใหญ่ มีวิธีอื่นอีกไหมในการเก็บเรื่องนี้? แก้ไข:เพื่อความง่ายในตัวอย่างเพลงเป็นของเพลย์ลิสต์เดียวเท่านั้น (ความสัมพันธ์แบบหนึ่งต่อหนึ่ง) แน่นอนเราสามารถใช้ …

8
ทำไมการค้นหาแบบไบนารี่ซึ่งต้องการข้อมูลที่เรียงลำดับถือว่าดีกว่าการค้นหาแบบเชิงเส้น
ฉันเคยได้ยินเสมอว่าการค้นหาเชิงเส้นเป็นวิธีที่ไร้เดียงสาและการค้นหาแบบไบนารี่นั้นดีกว่าในด้านประสิทธิภาพเนื่องจากความซับซ้อนเชิงซีมโทติคที่ดีขึ้น แต่ฉันไม่เคยเข้าใจว่าทำไมมันดีกว่าการค้นหาเชิงเส้นเมื่อจำเป็นต้องมีการเรียงลำดับก่อนการค้นหาแบบไบนารี ค้นหาเชิงเส้นและการค้นหาไบนารีO(n) O(log n)นั่นน่าจะเป็นพื้นฐานของการบอกว่าการค้นหาแบบไบนารี่นั้นดีกว่า แต่การค้นหาแบบไบนารี่จำเป็นต้องใช้การเรียงลำดับซึ่งเป็นO(n log n)วิธีที่ดีที่สุด ดังนั้นการค้นหาแบบไบนารี่จึงไม่ควรเร็วขึ้นตามที่ต้องการ ฉันกำลังอ่าน CLRS ซึ่งผู้เขียนบอกเป็นนัยว่าในการเรียงลำดับการแทรกแทนที่จะใช้วิธีการค้นหาเชิงเส้นแบบไร้เดียงสาจะเป็นการดีกว่าถ้าใช้การค้นหาแบบไบนารีในการค้นหาสถานที่ที่จะต้องใส่รายการ ในกรณีนี้สิ่งนี้ดูเหมือนว่าจะเป็นธรรมในการวนซ้ำแต่ละครั้งจะมีรายการเรียงลำดับซึ่งสามารถใช้การค้นหาแบบไบนารีได้ แต่ในกรณีทั่วไปที่ไม่มีการรับประกันเกี่ยวกับชุดข้อมูลที่เราต้องการค้นหาไม่ได้ใช้การค้นหาแบบไบนารีที่แย่กว่าการค้นหาแบบเชิงเส้นเนื่องจากความต้องการในการเรียงลำดับ? มีการพิจารณาในทางปฏิบัติใดบ้างที่ฉันมองเห็นซึ่งทำให้การค้นหาแบบไบนารีดีกว่าการค้นหาแบบเชิงเส้น หรือการค้นหาแบบไบนารี่ถือว่าดีกว่าการค้นหาแบบเชิงเส้นโดยไม่คำนึงถึงเวลาการคำนวณที่จำเป็นสำหรับการเรียงลำดับ?

3
Java และ. NET: เหตุใดอัลกอริธึมการเรียงลำดับแบบอื่นจึงถูกใช้โดยค่าเริ่มต้น
เพียงแค่สงสัยว่าทำไมJavaและ.NET Frameworkใช้อัลกอริทึมการเรียงลำดับที่แตกต่างกันตามค่าเริ่มต้น ใน Java Array.Sort()ใช้อัลกอริทึมMerge Sortตามค่าเริ่มต้นและตามที่Wikipedia.comพูดว่า: ใน Java เมธอด Arrays.sort () ใช้การเรียงแบบผสานหรือการปรับแบบเร็วขึ้นอยู่กับประเภทข้อมูลและสำหรับการสลับประสิทธิภาพการปรับใช้เพื่อเรียงลำดับการแทรกเมื่อเรียงลำดับองค์ประกอบอาร์เรย์น้อยกว่าเจ็ดรายการ ใน. NET Framework Array.Sort/List.Sort()ใช้Quick Sortเป็นอัลกอริทึมการเรียงลำดับเริ่มต้น ( MSDN ): List.Sort () ใช้ Array.Sort ซึ่งใช้อัลกอริทึม QuickSort การใช้งานนี้จัดเรียงไม่เสถียร นั่นคือถ้าสององค์ประกอบมีค่าเท่ากันลำดับของพวกเขาอาจไม่ถูกสงวนไว้ ในทางตรงกันข้ามการจัดเรียงที่มีเสถียรภาพจะรักษาลำดับขององค์ประกอบที่เท่ากัน จากการดูตาราง"การเปรียบเทียบอัลกอริธึม"ที่ยอดเยี่ยมเราจะเห็นได้ว่าอัลกอริธึมทั้งสองนั้นมีพฤติกรรมที่แตกต่างจากมุมมองการใช้งานหน่วยความจำและกรณีแย่ที่สุด: ทั้งสองJavaและ.NETเป็นกรอบการทำงานที่ยอดเยี่ยมสำหรับการพัฒนาโซลูชันองค์กรทั้งสองมีแพลตฟอร์มสำหรับการพัฒนาแบบฝัง เหตุใดพวกเขาจึงใช้อัลกอริธึมการเรียงลำดับที่แตกต่างกันตามค่าเริ่มต้นความคิดใด ๆ

5
ทบทวนอัลกอริทึม เหตุใด heapsort ถึงอัลกอริทึม insort
ฉันไม่เห็นสาเหตุที่ heapsort ถูกพิจารณาเป็นอัลกอริธึม เรียงลำดับแบบ inplace ฉันหมายถึงโครงสร้างข้อมูลพิเศษที่มีองค์ประกอบของอาร์เรย์ที่เรียงลำดับเช่น heap ใช้เพื่อช่วยในการแยกค่า min และกระบวนการเรียงลำดับ ดังนั้นฉันอาจเข้าใจผิดนิยามของสถานที่ที่นี่หรือไม่ แต่การเรียงลำดับการแทรกนั้นชัดเจนว่ามันเป็นอัลกอริธึมแบบ inplace นั่นคือไม่จำเป็นต้องมีหน่วยความจำเพิ่มเติมสำหรับองค์ประกอบ แล้วทำไมมันถึงเข้ามาแทนที่

2
พยายามเข้าใจ 2N lnN เปรียบเทียบกับ quicksort
ฉันกำลังทำการวิเคราะห์ quicksort ในหนังสือ Algorithms ของ Sedgewick เขาสร้างความสัมพันธ์ที่เกิดซ้ำต่อไปนี้สำหรับจำนวนการเปรียบเทียบใน quicksort ขณะที่เรียงลำดับอาร์เรย์ของรายการ N ที่แตกต่างกัน ฉันมีช่วงเวลาที่ยากลำบากในการทำความเข้าใจสิ่งนี้ ... ฉันรู้ว่าต้องใช้ความน่าจะเป็น 1 / N สำหรับองค์ประกอบใด ๆ ที่จะกลายเป็นเดือยและถ้าหาก k กลายเป็นเดือยย่อยย่อยด้านซ้ายจะมีองค์ประกอบ k-1 และย่อยขวา อาร์เรย์จะมีองค์ประกอบ Nk 1. ค่าใช้จ่ายในการแบ่งพาร์ติชันกลายเป็น N + 1 อย่างไร ต้องใช้ N + 1 เปรียบเทียบกับการแบ่งพาร์ติชันหรือไม่ 2.Sedgewick กล่าวว่าสำหรับแต่ละค่าของ k ถ้าคุณบวกมันความน่าจะเป็นที่องค์ประกอบแบ่งเป็น k + ค่าใช้จ่ายสำหรับสองอาร์เรย์ย่อยที่คุณได้รับสมการข้างต้น ใครสามารถอธิบายสิ่งนี้เพื่อให้ผู้ที่มีความรู้ทางคณิตศาสตร์น้อยลง (ฉัน) สามารถเข้าใจได้? คุณจะหาคำที่สองในสมการได้อย่างไร คำนั้นหมายถึงอะไรกันแน่?

2
ทำไมจาวาไม่ใช้เรเดียนซ์ในการค้นหาพื้นฐาน
java.util.Arrays.sort(/* int[], char[], short[], byte[], boolean[] */) ถูกนำมาใช้เป็น 'การปรับพอร์ตสั้น' แทนการเรียงลำดับแบบ Radix ฉันทำการเปรียบเทียบความเร็วเมื่อไม่นานมานี้และด้วยสิ่งต่าง ๆ เช่น n> 10,000 การเรียงลำดับของกัมมันตภาพรังสีก็เร็วขึ้นเสมอ ทำไม?
12 java  sorting 

7
จัดเรียงอัลกอริทึมที่ทำงานกับข้อมูลจำนวนมาก
ฉันกำลังมองหาอัลกอริทึมการเรียงลำดับที่สามารถทำงานกับข้อมูลจำนวนมากได้เช่นสามารถทำงานได้แม้ว่าชุดข้อมูลทั้งหมดไม่สามารถเก็บไว้ในหน่วยความจำหลักได้ในครั้งเดียว ผู้สมัครคนเดียวที่ฉันพบจนถึงขณะนี้คือการเรียงลำดับการผสาน: คุณสามารถใช้อัลกอริทึมในลักษณะที่จะสแกนชุดข้อมูลของคุณในแต่ละการผสานโดยไม่ต้องเก็บข้อมูลทั้งหมดในหน่วยความจำหลักในครั้งเดียว การเปลี่ยนแปลงของ merge sort ฉันมีในใจได้อธิบายไว้ในบทความนี้ในส่วนของการใช้งานด้วยเทปไดรฟ์ ฉันคิดว่านี่เป็นทางออกที่ดี (มีความซับซ้อน O (nx log (n)) แต่ฉันอยากรู้ว่ามีวิธีการเรียงลำดับอื่น ๆ (เร็วกว่า) เรียงลำดับที่สามารถทำงานกับชุดข้อมูลขนาดใหญ่ที่ไม่เหมาะกับหน่วยความจำหลัก แก้ไข นี่คือรายละเอียดเพิ่มเติมตามคำตอบที่ต้องการ: ข้อมูลจะต้องมีการเรียงลำดับเป็นระยะเช่นหนึ่งครั้งในหนึ่งเดือน ฉันไม่จำเป็นต้องแทรกบางระเบียนและมีการเรียงลำดับข้อมูลที่เพิ่มขึ้น ไฟล์ข้อความตัวอย่างของฉันมีขนาดประมาณ 1 GB UTF-8 แต่ฉันต้องการแก้ปัญหาโดยทั่วไปแม้ว่าไฟล์จะเป็น 20 GB ก็ตาม ไม่ได้อยู่ในฐานข้อมูลและเนื่องจากข้อ จำกัด อื่น ๆ จึงไม่สามารถทำได้ ข้อมูลถูกทิ้งโดยผู้อื่นเป็นไฟล์ข้อความฉันมีรหัสของตัวเองเพื่ออ่านไฟล์ข้อความนี้ รูปแบบของข้อมูลเป็นไฟล์ข้อความ: อักขระบรรทัดใหม่เป็นตัวคั่นเร็กคอร์ด การปรับปรุงที่เป็นไปได้อย่างหนึ่งที่ฉันนึกไว้คือการแบ่งไฟล์ออกเป็นไฟล์ที่มีขนาดเล็กพอที่จะเรียงในหน่วยความจำและท้ายที่สุดผสานไฟล์เหล่านี้ทั้งหมดโดยใช้อัลกอริทึมที่ฉันได้อธิบายไว้ข้างต้น

2
อินเทอร์เฟซ IComparable ล้าสมัย /“ เป็นอันตราย” หรือไม่
IComparable ใช้งานได้ทางเดียวเท่านั้น สมมติว่าคุณมีEmployeeชั้นเรียน ในมุมมองหนึ่งคุณต้องการแสดงทั้งหมดEmployeesเรียงตามชื่อ - ในอีกมุมมองตามที่อยู่ คุณจะประสบความสำเร็จได้อย่างไร ไม่อยู่กับIComparableอย่างน้อยก็ไม่มีทางที่เป็นไปได้ IComparable มีเหตุผลในสถานที่ที่ไม่ถูกต้อง .Sort()อินเตอร์เฟซที่ถูกนำมาใช้โดยการเรียก ในมุมมองที่แสดงCustomerเรียงตามชื่อไม่มีรหัสเลยที่จะบอกว่ามันจะถูกเรียงลำดับอย่างไร ในทางกลับกันCustomerคลาสจะสมมติว่ามันจะถูกใช้อย่างไรในกรณีนี้มันจะถูกใช้ในรายการเรียงตามชื่อ IComparable มีการใช้งานโดยปริยาย ในการเปรียบเทียบกับทางเลือกมันเป็นเรื่องยากมากที่จะเห็นว่ามีการใช้ตรรกะการเปรียบเทียบหรือไม่ สมมติว่า IDE มาตรฐานของคุณและเริ่มจากCustomerชั้นเรียนฉันจะต้อง ค้นหาการอ้างอิงทั้งหมดถึง Customer ค้นหาการอ้างอิงเหล่านั้นที่ใช้ในรายการ ตรวจสอบว่ารายการเหล่านั้นเคย.Sort()เรียกพวกเขา มีอะไรที่แย่กว่านั้นถ้าคุณลบการIComparableใช้งานที่ยังคงใช้อยู่คุณจะไม่ได้รับข้อผิดพลาดหรือคำเตือน สิ่งเดียวที่คุณจะได้รับคือพฤติกรรมที่ไม่ถูกต้องในทุกสถานที่ที่คลุมเครือเกินกว่าที่คุณจะนึกถึง ปัญหาเหล่านี้รวมกันรวมถึงข้อกำหนดที่เปลี่ยนแปลง เหตุผลที่ฉันมาคิดเรื่องนี้ก็เพราะมันผิดสำหรับฉัน ฉันมีความสุขที่ใช้IComparableในใบสมัครของฉันเป็นเวลา 2 ปีแล้ว ตอนนี้ความต้องการเปลี่ยนแปลงและสิ่งที่ต้องเรียงลำดับใน 2 วิธีที่แตกต่างกัน สังเกตว่าไม่มีความสนุกที่ทำตามขั้นตอนที่อธิบายไว้ในส่วนก่อนหน้า คำถาม ปัญหาเหล่านี้ทำให้ฉันคิดว่าIComparableเป็นด้อยกว่าIComparerหรือ.OrderBy()จนถึงจุดที่ไม่เห็นกรณีการใช้งานที่ถูกต้องที่จะไม่ได้รับการบริการที่ดีขึ้นโดยทางเลือกที่ จะดีกว่าเสมอที่จะใช้IComparerหรือ LINQ หรือมีข้อดี / กรณีการใช้งานที่ฉันไม่เห็นที่นี่?
11 c#  sorting  comparison 

2
ทำให้กรณีที่ไม่ดีสำหรับการจัดเรียงอย่างรวดเร็วคืออะไร?
ฉันกำลังเรียนรู้เกี่ยวกับ quicksort และต้องการแสดงอาร์เรย์ที่แตกต่างกันซึ่ง quicksort จะมีช่วงเวลาที่ยากลำบาก Quicksort ที่ฉันมีอยู่ในใจไม่มีการสับสุ่มเริ่มต้นทำพาร์ติชัน 2 และไม่คำนวณค่ามัธยฐาน ฉันคิดถึงตัวอย่างสามตัวอย่าง: [1,2,3,4,5,6,7,8,9,10] - when the array is sorted [10,9,8,7,6,5,4,3,2,1] - when the array is reversed [1,1,1,1,1,1,1,1,1,1] - when the array is the same values [1,1,1,2,2,2,3,3,3,3] - when there are few and unique keys ตัวอย่างเช่นฉันไม่แน่ใจเกี่ยวกับสิ่งนี้: [1,3,5,7,9,10,8,6,4,2] ดังนั้นอะไรที่ทำให้อาร์เรย์ที่ quicksort มีความยากลำบากเมื่อเทียบกับที่มันเหมาะ (เกือบ)?

4
วิธีที่เร็วที่สุดในการแยกสตริงแบบมีตัวคั่นใน Java
ฉันกำลังสร้างเครื่องมือเปรียบเทียบที่ให้ความสามารถในการจัดเรียงหลายคอลัมน์ในสตริงแบบมีตัวคั่น ขณะนี้ฉันกำลังใช้วิธีการแยกจากคลาส String เป็นตัวเลือกที่ฉันต้องการสำหรับการแยกสตริงดิบเป็นโทเค็น นี่เป็นวิธีที่มีประสิทธิภาพดีที่สุดในการแปลงสตริงดิบเป็นอาร์เรย์สตริงหรือไม่ ฉันจะเรียงลำดับแถวนับล้านดังนั้นฉันคิดว่าวิธีการที่สำคัญ ดูเหมือนว่าจะทำงานได้ดีและง่ายมาก แต่ไม่แน่ใจว่ามีวิธีที่เร็วกว่าใน java นี่คือวิธีการเรียงลำดับใน Comparator ของฉัน: public int compare(String a, String b) { String[] aValues = a.split(_delimiter, _columnComparators.length); String[] bValues = b.split(_delimiter, _columnComparators.length); int result = 0; for( int index : _sortColumnIndices ) { result = _columnComparators[index].compare(aValues[index], bValues[index]); if(result != 0){ break; } } …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.