Segala urutan data dengan jenis yang sama dapat ditunjukkan sebagai senarai. Daftar boleh disusun dan tidak tersusun. Dalam kes terakhir, bekerja dengan data, mencari nilai yang diinginkan, dan mengakses unsur-unsur senarai menyebabkan kesulitan tertentu. Senarai pemboleh ubah rentetan biasanya disusun mengikut abjad. Terdapat banyak kaedah penyortiran, dalam setiap kes anda harus memilih algoritma yang paling optimum.
Arahan
Langkah 1
Semasa memilih kaedah penyortiran terbaik, ada dua perkara yang perlu dipertimbangkan: masa yang diperlukan untuk operasi penyortiran dan jumlah memori yang diperlukan untuk penyimpanan tambahan. Algoritma penyortiran yang tidak memerlukan memori tambahan disebut sebagai jenis "di tempat". Salah satu yang paling mudah dilaksanakan adalah jenis gelembung lambat, yang mengimbas setiap pasangan item dalam senarai dan menukar tempat bergantung pada urutan yang diinginkan.
Langkah 2
Terdapat kaedah menyusun lebih cepat dengan mencari item minimum atau maksimum dalam senarai. Sekiranya anda menyusun mengikut abjad, setiap kali anda membaca senarai, anda perlu mencari elemen maksimumnya - ini akan menjadi rentetan yang bermula dengan huruf yang paling hampir dengan permulaan abjad. Setelah dijumpai, tali bertukar dengan item pertama dalam senarai pada hantaran pertama. Setelah mempertimbangkan senarai lebih lanjut, tempat pertama dikecualikan, elemen maksimum seterusnya dicari, diletakkan di tempat kedua, dll. Kod program penyortiran dalam C ++ dengan kaedah mencari elemen maksimum dari senarai: String Arr [20], cTemp; int N = 20, Max, Pos; untuk (int i = 0; i <N- 1; i ++) {Max = Arr ; Pos = i; untuk (int j = 0; j <N; j ++) {if (Arr [j] <Max) {Max = Arr [j]; Pos = j; } cTemp = Arr ; Arr = Arr [Pos]; Arr [Pos] = cTemp; }}
Langkah 3
Penyelesaian yang paling optimum untuk memesan data rentetan dalam senarai adalah jenis penyisipan. Intinya terletak pada kenyataan bahawa dengan setiap melewati senarai, ada bahagian tersusun dari senarai sejumlah elemen, oleh itu, elemen berikutnya yang dipertimbangkan diletakkan di tempat yang sesuai dalam senarai. Kod C ++ algoritma penyusun sisipan: String Arr [20], cTemp; int N = 20; untuk (int i = 1, j = 0; i <N; i ++) {cTemp = Arr ; j = i - 1; manakala (cTemp <Arr [j]) {Arr [j + 1] = Arr [j]; j--; jika (j <0) rehat; Arr [j + 1] = cTemp; }}