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

การเรียงลำดับเป็นกระบวนการของการใช้คำสั่งบางอย่างกับการรวบรวมรายการ

11
จัดอันดับรายการในอาร์เรย์โดยใช้ Python / NumPy โดยไม่ต้องเรียงลำดับอาร์เรย์สองครั้ง
ฉันมีอาร์เรย์ของตัวเลขและฉันต้องการสร้างอาร์เรย์อื่นที่แสดงถึงอันดับของแต่ละรายการในอาร์เรย์แรก ฉันใช้ Python และ NumPy ตัวอย่างเช่น: array = [4,2,7,1] ranks = [2,1,3,0] นี่เป็นวิธีที่ดีที่สุดที่ฉันคิดขึ้น: array = numpy.array([4,2,7,1]) temp = array.argsort() ranks = numpy.arange(len(array))[temp.argsort()] มีวิธีใดที่ดีกว่า / เร็วกว่าที่หลีกเลี่ยงการเรียงอาร์เรย์สองครั้ง
103 python  sorting  numpy 

12
มีวิธีละเว้นบรรทัดส่วนหัวในการจัดเรียง UNIX หรือไม่?
ฉันมีไฟล์ฟิลด์ความกว้างคงที่ซึ่งฉันกำลังพยายามจัดเรียงโดยใช้ยูทิลิตี้การจัดเรียง UNIX (Cygwin ในกรณีของฉัน) ปัญหาคือมีส่วนหัวสองบรรทัดที่ด้านบนของไฟล์ซึ่งจะถูกจัดเรียงไว้ที่ด้านล่างของไฟล์ (เนื่องจากแต่ละบรรทัดส่วนหัวขึ้นต้นด้วยเครื่องหมายจุดคู่) มีวิธีบอก sort หรือไม่ว่า "ส่งสองบรรทัดแรกไปยังไม่เรียงลำดับ" หรือระบุลำดับที่เรียงลำดับบรรทัดโคลอนไปด้านบน - บรรทัดที่เหลือจะเริ่มต้นด้วยตัวเลข 6 หลักเสมอ (ซึ่งจริงๆแล้วคือคีย์ I 'm sorting on) ถ้าช่วยได้ ตัวอย่าง: :0:12345 :1:6:2:3:8:4:2 010005TSTDOG_FOOD01 500123TSTMY_RADAR00 222334NOTALINEOUT01 477821USASHUTTLES21 325611LVEANOTHERS00 ควรจัดเรียงเป็น: :0:12345 :1:6:2:3:8:4:2 010005TSTDOG_FOOD01 222334NOTALINEOUT01 325611LVEANOTHERS00 477821USASHUTTLES21 500123TSTMY_RADAR00

4
วิธีการจัดเรียงรายการใน Scala ตามสองฟิลด์?
วิธีการจัดเรียงรายการใน Scala ตามสองฟิลด์ในตัวอย่างนี้ฉันจะจัดเรียงตาม lastName และ firstName? case class Row(var firstName: String, var lastName: String, var city: String) var rows = List(new Row("Oscar", "Wilde", "London"), new Row("Otto", "Swift", "Berlin"), new Row("Carl", "Swift", "Paris"), new Row("Hans", "Swift", "Dublin"), new Row("Hugo", "Swift", "Sligo")) rows.sortBy(_.lastName) ฉันลองสิ่งนี้ rows.sortBy(_.lastName + _.firstName) แต่มันไม่ได้ผล ดังนั้นฉันจึงอยากรู้วิธีแก้ปัญหาที่ดีและง่าย

19
ฉันจะเรียงลำดับสตริงตามตัวอักษรในขณะที่บันทึกค่าเมื่อสตริงเป็นตัวเลขได้อย่างไร
ฉันกำลังพยายามจัดเรียงอาร์เรย์ของตัวเลขที่เป็นสตริงและฉันต้องการให้เรียงลำดับตามตัวเลข สิ่งที่จับได้คือฉันไม่สามารถแปลงตัวเลขเป็น intได้ นี่คือรหัส: string[] things= new string[] { "105", "101", "102", "103", "90" }; foreach (var thing in things.OrderBy(x => x)) { Console.WriteLine(thing); } เอาต์พุต: 101, 102, 103, 105, 90 ฉันต้องการ: 90, 101, 102, 103, 105 แก้ไข: เอาต์พุตไม่สามารถเป็น 090, 101, 102 ... อัปเดตตัวอย่างโค้ดเป็น "things" แทน "ขนาด" อาร์เรย์สามารถเป็นดังนี้: string[] things= …

1
เหตุใด Collections.sort จึงใช้การจัดเรียงแบบผสานแทนที่จะเป็น Quicksort
เราทราบดีว่าการจัดเรียงแบบรวดเร็วเป็นอัลกอริทึมการเรียงลำดับที่เร็วที่สุด JDK6 collections.sortใช้อัลกอริธึมการเรียงลำดับผสานแทนการเรียงลำดับด่วน แต่ Arrays.sort ใช้อัลกอริทึมการจัดเรียงอย่างรวดเร็ว อะไรคือเหตุผลที่ Collections.sort ใช้การเรียงลำดับผสานแทนการเรียงลำดับด่วน

3
จัดเรียงค่าลักษณะเฉพาะและค่าลักษณะเฉพาะที่เกี่ยวข้องหลังจากใช้ numpy.linalg.eig ใน python
ฉันกำลังใช้ numpy.linalg.eig เพื่อรับรายการค่าลักษณะเฉพาะและค่าลักษณะเฉพาะ: A = someMatrixArray from numpy.linalg import eig as eigenValuesAndVectors solution = eigenValuesAndVectors(A) eigenValues = solution[0] eigenVectors = solution[1] ฉันต้องการจัดเรียงค่าลักษณะเฉพาะของฉัน (เช่นจากต่ำสุดไปสูงสุด) ในแบบที่ฉันรู้ว่า eigenvector ที่เกี่ยวข้องคืออะไรหลังจากการเรียงลำดับ ฉันไม่พบวิธีการทำเช่นนั้นกับฟังก์ชัน python มีวิธีง่ายๆหรือฉันต้องเขียนโค้ดเวอร์ชันการเรียงลำดับของฉันหรือไม่?
101 python  sorting  numpy 


11
การเรียงลำดับอาร์เรย์ใหม่
พูดว่าฉันมีอาร์เรย์ที่มีลักษณะดังนี้: var playlist = [ {artist:"Herbie Hancock", title:"Thrust"}, {artist:"Lalo Schifrin", title:"Shifting Gears"}, {artist:"Faze-O", title:"Riding High"} ]; ฉันจะย้ายองค์ประกอบไปยังตำแหน่งอื่นได้อย่างไร ฉันต้องการย้ายตัวอย่างเช่น{artist:"Lalo Schifrin", title:"Shifting Gears"}ไปยังจุดสิ้นสุด ฉันลองใช้ Splice ดังนี้: var tmp = playlist.splice(2,1); playlist.splice(2,0,tmp); แต่มันไม่ได้ผล

9
จะเรียงอาร์เรย์ตามความยาวของแต่ละองค์ประกอบได้อย่างไร?
ฉันมีอาร์เรย์ดังนี้: arr = [] arr[0] = "ab" arr[1] = "abcdefgh" arr[2] = "abcd" หลังจากการเรียงลำดับอาร์เรย์เอาต์พุตควรเป็น: arr[0] = "abcdefgh" arr[1] = "abcd" arr[2] = "ab" ฉันหมายถึงฉันต้องการเรียงลำดับจากมากไปหาน้อยของความยาวของแต่ละองค์ประกอบ

11
ฉันจะจัดเรียงสตริง Unicode ตามตัวอักษรใน Python ได้อย่างไร
Python เรียงลำดับตามค่าไบต์ตามค่าเริ่มต้นซึ่งหมายความว่าéมาหลัง z และสิ่งอื่น ๆ ที่ตลกพอ ๆ กัน วิธีที่ดีที่สุดในการจัดเรียงตามตัวอักษรใน Python คืออะไร? มีห้องสมุดสำหรับสิ่งนี้หรือไม่? ฉันไม่พบอะไรเลย การเรียงลำดับควรมีการรองรับภาษาดังนั้นจึงเข้าใจว่าåäöควรเรียงตาม z ในภาษาสวีเดน แต่üควรจัดเรียงตาม u เป็นต้นการสนับสนุน Unicode จึงเป็นข้อกำหนดค่อนข้างมาก หากไม่มีห้องสมุดจะทำอย่างไรดีที่สุด เพียงแค่ทำการแมปจากตัวอักษรเป็นค่าจำนวนเต็มและแมปสตริงกับรายการจำนวนเต็มด้วยสิ่งนั้น



6
การเรียงลำดับรายการ Python ที่กำหนดเอง
ฉันกำลังปรับโครงสร้างโค้ดเก่าของฉันและเจอสิ่งนี้: alist.sort(cmp_items) def cmp_items(a, b): if a.foo > b.foo: return 1 elif a.foo == b.foo: return 0 else: return -1 รหัสใช้งานได้ (และฉันเขียนไว้เมื่อ 3 ปีก่อน!) แต่ฉันไม่พบสิ่งนี้ที่บันทึกไว้ในเอกสาร Python และทุกคนใช้sorted()เพื่อใช้การจัดเรียงแบบกำหนดเอง ใครช่วยอธิบายได้ไหมว่าทำไมถึงได้ผล
98 python  list  sorting 

23
ฉันจะจัดเรียงคอลเล็กชันที่สังเกตได้อย่างไร
ฉันมีชั้นเรียนต่อไปนี้: [DataContract] public class Pair<TKey, TValue> : INotifyPropertyChanged, IDisposable { public Pair(TKey key, TValue value) { Key = key; Value = value; } #region Properties [DataMember] public TKey Key { get { return m_key; } set { m_key = value; OnPropertyChanged("Key"); } } [DataMember] public TValue Value { get { …

5
เหตุใด Collections.sort จึงใช้ Mergesort แต่ Arrays.sort ใช้ไม่ได้
ฉันใช้ JDK-8 (x64) สำหรับArrays.sort(primitives) ฉันพบสิ่งต่อไปนี้ในเอกสาร Java: อัลกอริทึมการเรียงลำดับคือ Dual-Pivot Quicksortโดย Vladimir Yaroslavskiy, Jon Bentley และ Joshua Bloch สำหรับCollections.sort(วัตถุ) ฉันพบ "Timsort" นี้: การนำไปใช้งานนี้เป็นการผสานแบบวนซ้ำที่เสถียรและปรับเปลี่ยนได้... การนำไปใช้งานนี้จะทิ้งรายการที่ระบุลงในอาร์เรย์จัดเรียงอาร์เรย์และวนซ้ำในรายการที่รีเซ็ตแต่ละองค์ประกอบจากตำแหน่งที่สอดคล้องกันในอาร์เรย์ ถ้าCollections.sortใช้อาร์เรย์ทำไมไม่ได้เพียงโทรArrays.sortหรือใช้แบบ dual-เดือยQuickSort ? ทำไมต้องใช้Mergesort ?

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