Python 목록 정렬: 1. 버블 정렬은 정렬할 시퀀스를 반복적으로 탐색하고 한 번에 두 요소를 비교한 후 순서가 잘못된 경우 교체합니다. 2. 삽입 정렬 정렬된 순서, 정렬되지 않은 데이터의 경우 정렬된 순서의 뒤에서 앞으로 스캔하여 해당 위치를 찾아서 삽입합니다.
관련 학습 권장사항: python tutorial
1. 버블 정렬
버블 정렬(Bubble Sort)은 간단한 정렬 알고리즘입니다. 정렬할 배열을 반복적으로 반복하여 한 번에 두 요소를 비교하고 순서가 잘못된 경우 교체합니다. 더 이상 교환이 필요하지 않을 때까지 배열을 순회하는 작업이 반복됩니다. 이는 배열이 정렬되었음을 의미합니다. 이 알고리즘의 이름은 작은 요소가 스와핑을 통해 배열의 맨 위로 천천히 "부동"된다는 사실에서 유래되었습니다.
def bubble_sort(list): n = len(list) for i in range(n - 1): for j in range( 0,n - 1 - i): if list[j] > list[j + 1]: list[j], list[j + 1] = list[j + 1], list[j] # if list[i] > list[i + 1]: # list[i], list[i + 1] = list[i + 1], list[i] print(list) list=[2,4,6,8,1,3,5,7,9] bubble_sort(list) #结果:[1,2,3,4,5,6,7,8,9]
2. 삽입 정렬
삽입 정렬은 간단하고 직관적인 정렬 알고리즘입니다. 정렬되지 않은 데이터의 경우 정렬된 시퀀스의 뒤에서 앞으로 스캔하여 해당 위치를 찾아 삽입합니다. 삽입 정렬의 구현에서는 뒤에서 앞으로 스캔하는 동안 정렬된 요소를 점차적으로 뒤로 이동하여 최신 요소에 대한 삽입 공간을 제공해야 합니다.
def insertion_sort(list): n = len(list) for i in range(1, n): for j in range(i, 0, -1): if list[j] < list[j - 1]: list[j], list[j - 1] = list[j - 1], list[j] else: break print(list) insertion_sort([3,0,2,5,8,5,9,41,0,1,6]) #结果:[0, 0, 1, 2, 3, 5, 5, 6, 8, 9, 41]
3. 선택 정렬
선택 정렬은 간단하고 직관적인 정렬 알고리즘입니다. 작동 원리는 다음과 같습니다. 먼저 정렬되지 않은 시퀀스에서 가장 작은(큰) 요소를 찾고, 이를 정렬된 시퀀스의 시작 위치에 저장한 다음, 정렬되지 않은 나머지 요소에서 가장 작은(큰) 요소를 계속해서 찾습니다. 정렬된 순서의 마지막에 배치됩니다. 모든 요소가 정렬될 때까지 계속됩니다.
def selection_sort(list): n = len(list) for i in range(0, n -1): min_index = i for j in range(i + 1, n): if list[min_index] > list[j]: min_index = j if i != min_index: list[min_index], list[i] = list[i], list[min_index] print(list) selection_sort([5,9,6,42,9,4,66,2,3,0,1]) #结果:0, 1, 2, 3, 4, 5, 6, 9, 9, 42, 66]
요약:
import random # 随机生成1-1000之间无序序列整数数据 def generator(): random_data = [] for i in range( 0, 10 ): random_data.append( random.randint( 1, 1000 ) ) return random_data # 冒泡排序 def bubble_sort(list): # 序列长度 n = len( list ) for i in range( 0, n ): for j in range( i , n ): if list[i] > list[j]: list[i], list[j] = list[j], list[i] return list # 选择排序 def selection_sort(list): n = len(list) for i in range(0, n -1): min_index = i for j in range(i + 1, n): if list[min_index] > list[j]: min_index = j if i != min_index: list[min_index], list[i] = list[i], list[min_index] return list #插入排序 def insertion_sort(list): n = len(list) for i in range(1, n): for j in range(i, 0, -1): if list[j] < list[j - 1]: list[j], list[j - 1] = list[j - 1], list[j] else: break return list if __name__ == "__main__": # 生成随机无序数据 list = generator() # 打印无序数据 print( '随机生成的无序数据:',list ) # 冒泡排序 sorted_data = bubble_sort( list ) #插入排序 insertion_data=insertion_sort(list) #选择排序 selection_data=selection_sort( list ) # 打印排序结果 print( '冒泡排序:',sorted_data ) print( '插入排序:', insertion_data ) print( '选择排序:', selection_data ) ''' 结果: 随机生成的无序数据: [300, 517, 591, 209, 204, 789, 417, 739, 803, 393] 冒泡排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803] 插入排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803] 选择排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803] '''
프로그래밍 학습에 대해 더 알고 싶다면 php training 칼럼에 주목해주세요!
위 내용은 Python 목록 정렬 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!