Pada artikel ini, kita akan mempelajari cara mengurutkan daftar apa pun, menurut elemen kedua dari sublist yang ada di dalam daftar utama. Kita akan melihat dua metode untuk melakukan ini. Kita akan mempelajari tiga metode untuk melakukan hal semacam ini. Satu dengan menggunakan Bubble Sort, kedua dengan menggunakan metode sort() dan yang terakhir dengan menggunakan metode sortir(). Dalam program ini, kami telah mengurutkan daftar dalam urutan menaik. Contoh
Input : [['rishav', 10], ['akash', 5], ['ram', 20], ['gaurav', 15]] Output : [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]] Input : [['452', 10], ['256', 5], ['100', 20], ['135', 15]] Output : [['256', 5], ['452', 10], ['135', 15], ['100', 20]]Direkomendasikan. Harap coba pendekatan Anda pada {IDE} terlebih dahulu, sebelum melanjutkan ke solusi
Metode 1. Menggunakan Teknik Bubble Sort Di sini kita telah menggunakan teknik Bubble Sort untuk melakukan sortasi. Kami telah mencoba mengakses elemen kedua dari sublist menggunakan loop bersarang. Ini melakukan metode penyortiran di tempat. Kompleksitas waktunya mirip dengan Bubble Sort i. e. , O(n^2)
Python3
# Python code to sort the lists using the second element of sublists
# Inplace way to sort, use of third variable
________ 105 _______ ________ 106 _______
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]0[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]2[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]3
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]5 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]6[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]7 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]8[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]9[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]0[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]2[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]5 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]4[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]7 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]8[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]9[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]0[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]9[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]0[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]6________1______0________1___1____3_______
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]5[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]6 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]7[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]3[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]9[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]0 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]3[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]2[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]3[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]4
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]5[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]6[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]8
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]5[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]8[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1 # Python code to sort the lists using the second element of sublists2[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]0 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]3# Python code to sort the lists using the second element of sublists5
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]5# Python code to sort the lists using the second element of sublists2[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]0 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]3# Python code to sort the lists using the second element of sublists5[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]6
# Inplace way to sort, use of third variable_4 # Inplace way to sort, use of third variable5
# Inplace way to sort, use of third variable_6
# Inplace way to sort, use of third variable5[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1# Inplace way to sort, use of third variable9def0def1def2def3def4def1def6def3def8def1Sort(sub_li):0def3Sort(sub_li):2def1Sort(sub_li):4Sort(sub_li):5
Sort(sub_li):6Sort(sub_li):7
Keluaran
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]_Kompleksitas Waktu. O(n*n), di mana n adalah panjang dari sub_li yang diberikan
Ruang Bantu. O(1)
Metode 2. Menyortir dengan menggunakan metode sort() Saat menyortir melalui metode ini, konten sebenarnya dari tuple diubah, dan seperti metode sebelumnya, metode sortir di tempat dilakukan.
Python3
Sort(sub_li):_8
Sort(sub_li):_9
________ 105 _______ ________ 106 _______
3
5
7
9[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]01 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]02[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]3[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]04
# Inplace way to sort, use of third variable_4 # Inplace way to sort, use of third variable5
# Inplace way to sort, use of third variable_6
# Inplace way to sort, use of third variable5[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1# Inplace way to sort, use of third variable9def0def1def2def3def4def1def6def3def8def1Sort(sub_li):0def3Sort(sub_li):2def1Sort(sub_li):4Sort(sub_li):5
Sort(sub_li):6Sort(sub_li):7
Keluaran[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]_
Kompleksitas waktu. O(masuk)
Ruang bantu. O(1) karena penyortiran dilakukan di tempat menggunakan fungsi sort(). Fungsi sort() memiliki kompleksitas waktu O(nlogn) untuk skenario rata-rata dan terburuk
Metode 3. Menyortir dengan menggunakan metode sortir() Sorted() mengurutkan daftar dan selalu mengembalikan daftar dengan elemen dengan cara diurutkan, tanpa mengubah urutan aslinya. Dibutuhkan tiga parameter dari mana dua adalah opsional, di sini kami mencoba menggunakan ketiganya
- Iterable. sequence (list, tuple, string) atau collection (dictionary, set, frozenset) atau iterator lainnya yang perlu diurutkan
- Kunci (opsional). Fungsi yang akan berfungsi sebagai kunci atau dasar perbandingan sortir
- Terbalik (opsional). Untuk mengurutkan ini dalam urutan menaik kita bisa saja mengabaikan parameter ketiga, yang kita lakukan dalam program ini. Jika disetel benar, maka iterable akan diurutkan dalam urutan terbalik (menurun), secara default disetel sebagai salah
Python3
Sort(sub_li):_8
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]_31
________ 105 _______ ________ 106 _______
3
5
7
# Inplace way to sort, use of third variable4[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]9[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]43[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]44[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]01 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]02[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]3[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]49
# Inplace way to sort, use of third variable_6
# Inplace way to sort, use of third variable5[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1# Inplace way to sort, use of third variable9def0def1def2def3def4def1def6def3def8def1Sort(sub_li):0def3Sort(sub_li):2def1Sort(sub_li):4Sort(sub_li):5
Sort(sub_li):6Sort(sub_li):7
Keluaran[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]_
Metode 4. Gunakan perintahDIct
Python3
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]_72 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]73[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]74 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]75
________ 105 _______ ________ 106 _______
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]_79
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]81[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]83
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]5 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]6[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]7 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]88
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]2[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]90[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]3Sort(sub_li):5[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]6
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]_97
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]99[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]43[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]02
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]_04
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]06[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]08[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]5 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]10[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]7 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]12
# Inplace way to sort, use of third variable_4 [['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]06
[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]_17
# Inplace way to sort, use of third variable_6
# Inplace way to sort, use of third variable5[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]1# Inplace way to sort, use of third variable9def0def1def2def3def4def1def6def3def8def1Sort(sub_li):0def3Sort(sub_li):2def1Sort(sub_li):4Sort(sub_li):5
Sort(sub_li):6Sort(sub_li):7
Keluaran[['akash', 5], ['rishav', 10], ['gaurav', 15], ['ram', 20]]_
Pendekatan ini mengimplementasikan kamus terurut yang menyimpan elemen sublist sebagai pasangan kunci-nilai. Kamus kemudian diurutkan berdasarkan kunci dan daftar dikembalikan dengan elemen yang diurutkan menurut elemen kedua dalam subdaftar