Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn giải pháp sắp xếp danh sách trong python mà không có chức năng sắp xếp, khi làm lập trình viên, có thể có yêu cầu cần sắp xếp một số dữ liệu
Đây là một nhiệm vụ rất phổ biến và dễ thực hiện với một số phương thức tích hợp sẵn trong một số ngôn ngữ lập trình
Việc không sử dụng bất kỳ phương thức tích hợp nào để thực hiện sắp xếp, có thể hơi khó thực hiện trong một số ngôn ngữ lập trình. Vậy hãy bắt đầu
Hướng dẫn từng bước về cách sắp xếp danh sách trong Python mà không cần chức năng sắp xếp. -
Python cung cấp một hàm dựng sẵn có tên sort[] để giảm bớt công việc sắp xếp khi làm lập trình viên
Bạn cũng có thể thực hiện sắp xếp mà không cần hàm sort[] tích hợp sẵn do Python cung cấp
#Ví dụ đầu tiên
originalList1 = [2, -1, -2, 0, 1] for i in range[len[originalList1]]: for j in range[i + 1, len[originalList1]]: if originalList1[i] > originalList1[j]: originalList1[i], originalList1[j] = originalList1[j], originalList1[i] print[originalList1]
#Ví dụ thứ hai
originalList2 = [2, -1, -2, 0, 1] for i in originalList2[1:]: j = originalList2.index[i] while j > 0 and originalList2[j-1] < originalList2[j]: originalList2[j], originalList2[j-1] = originalList2[j-1], originalList2[j] j = j - 1 print[originalList2]
- Dòng đầu tiên là một nhận xét có nội dung “ví dụ đầu tiên”, đây là phương pháp đầu tiên bạn có thể sử dụng để sắp xếp danh sách các phần tử trong Python
- Trong ví dụ đầu tiên, chúng tôi sẽ thực hiện sắp xếp theo thứ tự tăng dần và trong ví dụ thứ hai, chúng tôi sẽ thực hiện sắp xếp theo thứ tự giảm dần
- Trong dòng tiếp theo, có một biến gọi là original_list1, là một danh sách và có một số giá trị nguyên không có thứ tự
- Ở dòng tiếp theo, có một vòng lặp for sẽ lặp qua toàn bộ danh sách n lần, trong đó n là số phần tử trong danh sách. Đây là 5. Vì vậy, vòng lặp for sẽ lặp lại năm lần
- Ở dòng tiếp theo, có một vòng lặp for khác nằm bên trong một vòng lặp for khác. Đây được gọi là vòng lặp for lồng nhau. Vòng lặp for này sẽ bắt đầu từ phần tử thứ hai của danh sách và lặp qua tất cả các phần tử trong danh sách
- Vòng lặp for bên trong sẽ lặp 5 lần cho mỗi lần lặp của vòng lặp for bên ngoài để thực hiện sắp xếp
- Trong vòng lặp for bên trong, có một điều kiện if sẽ kiểm tra xem có hoán đổi các phần tử hay không
- Nếu phần tử thứ nhất lớn hơn phần tử thứ hai thì hoán đổi các phần tử;
- Kỹ thuật này được gọi là sắp xếp bong bóng trong đó bạn so sánh từng phần tử với các phần tử khác để thực hiện sắp xếp
- Trong dòng tiếp theo, việc hoán đổi diễn ra giữa hai phần tử cần hoán đổi
- Dòng tiếp theo là một câu lệnh in sẽ in danh sách đã sắp xếp làm đầu ra
- Trong dòng tiếp theo, có một nhận xét khác nói rằng “Ví dụ thứ hai”, rất giống với cách tiếp cận đã đề cập ở trên, với sự khác biệt nhỏ ở một số chức năng không được sử dụng
- Trong dòng tiếp theo, có một biến có tên originalList2, đây là một danh sách chứa một số giá trị số nguyên trong đó
- Trong dòng tiếp theo có một vòng lặp for sẽ lặp qua tất cả các phần tử. Nó tương tự như vòng lặp for đã đề cập ở trên nhưng không có các hàm range[] và len[]
- Cái tiếp theo có một biến sẽ giữ giá trị của hàm index[]. Hàm index[] trong Python giúp bạn tìm vị trí chỉ mục của một phần tử
- Ở dòng tiếp theo có một vòng lặp while sẽ kiểm tra điều kiện có hoán đổi phần tử hay không
- Nếu điều kiện là đúng thì việc hoán đổi sẽ được thực hiện;
- Trong dòng tiếp theo, việc hoán đổi diễn ra giữa hai phần tử. Sau đó, giá trị của biến j sẽ giảm đi 1
- Dòng cuối cùng là câu lệnh in, sẽ hiển thị danh sách kết quả được sắp xếp theo thứ tự giảm dần
Phần kết luận. -
Vì vậy, cuối cùng, để kết luận, chúng ta có thể nói rằng với sự trợ giúp của bài viết này, giờ đây bạn có thể sắp xếp một danh sách mà không cần sử dụng hàm sort[] tích hợp sẵn trong chương trình Python
Tôi hy vọng hướng dẫn này về cách sắp xếp danh sách trong python mà không cần chức năng sắp xếp sẽ giúp bạn và các bước cũng như phương pháp được đề cập ở trên rất dễ thực hiện và thực hiện
Đưa ra một danh sách các chuỗi, nhiệm vụ là sắp xếp danh sách đó dựa trên yêu cầu đã cho. Có nhiều tình huống có thể xảy ra khi sắp xếp danh sách chuỗi, như –
- Sắp xếp theo thứ tự bảng chữ cái/ngược lại
- Dựa trên độ dài của ký tự chuỗi
- Sắp xếp các giá trị số nguyên trong danh sách chuỗi, v.v.
Hãy thảo luận về nhiều cách khác nhau để thực hiện nhiệm vụ này.
Ví dụ 1. Sử dụng hàm sort[].
Python3
originalList2 = [2, -1, -2, 0, 1] for i in originalList2[1:]: j = originalList2.index[i] while j > 0 and originalList2[j-1] < originalList2[j]: originalList2[j], originalList2[j-1] = originalList2[j-1], originalList2[j] j = j - 1 print[originalList2]3
originalList2 = [2, -1, -2, 0, 1] for i in originalList2[1:]: j = originalList2.index[i] while j > 0 and originalList2[j-1] < originalList2[j]: originalList2[j], originalList2[j-1] = originalList2[j-1], originalList2[j] j = j - 1 print[originalList2]4
originalList2 = [2, -1, -2, 0, 1] for i in originalList2[1:]: j = originalList2.index[i] while j > 0 and originalList2[j-1] < originalList2[j]: originalList2[j], originalList2[j-1] = originalList2[j-1], originalList2[j] j = j - 1 print[originalList2]5
originalList2 = [2, -1, -2, 0, 1] for i in originalList2[1:]: j = originalList2.index[i] while j > 0 and originalList2[j-1] < originalList2[j]: originalList2[j], originalList2[j-1] = originalList2[j-1], originalList2[j] j = j - 1 print[originalList2]6
originalList2 = [2, -1, -2, 0, 1] for i in originalList2[1:]: j = originalList2.index[i] while j > 0 and originalList2[j-1] < originalList2[j]: originalList2[j], originalList2[j-1] = originalList2[j-1], originalList2[j] j = j - 1 print[originalList2]7
a for geeks gfg is portal0_______21
a for geeks gfg is portal0
a for geeks gfg is portal3
a for geeks gfg is portal0
a for geeks gfg is portal5
a for geeks gfg is portal0
a for geeks gfg is portal7
a for geeks gfg is portal0
a for geeks gfg is portal9
originalList2 = [2, -1, -2, 0, 1] for i in originalList2[1:]: j = originalList2.index[i] while j > 0 and originalList2[j-1] < originalList2[j]: originalList2[j], originalList2[j-1] = originalList2[j-1], originalList2[j] j = j - 1 print[originalList2]20