버블 정렬은 인접한 요소의 순서가 잘못된 경우 반복적으로 교체하여 작동하는 가장 간단한 정렬 알고리즘입니다.
C 프로그래밍의 행렬
버블 정렬을 위한 Python 프로그램
제공된 파이썬 코드는 인접한 요소를 반복적으로 비교하고 순서가 잘못된 경우 교체하여 배열을 정렬하는 버블 정렬 알고리즘을 구현합니다. 알고리즘은 배열을 여러 번 반복하며, 각 패스는 정렬되지 않은 가장 큰 요소를 마지막의 올바른 위치로 푸시합니다. 코드에는 최적화가 포함되어 있습니다. 패스 중에 교체가 이루어지지 않으면 배열이 이미 정렬되어 있으며 정렬 프로세스가 중지됩니다. 예제에서는 배열을 초기화하고 bubbleSort 함수를 적용하여 정렬한 다음 정렬된 배열을 인쇄합니다. 정렬 후 출력은 [11, 12, 22, 25, 34, 64, 90]이며 오름차순을 나타냅니다.
파이썬3
# Python program for implementation of Bubble Sort def bubbleSort(arr): n = len(arr) # optimize code, so if the array is already sorted, it doesn't need # to go through the entire process # Traverse through all array elements for i in range(n-1): # range(n) also work but outer loop will # repeat one time more than needed. # Last i elements are already in place swapped = False for j in range(0, n-i-1): # traverse the array from 0 to n-i-1 # Swap if the element found is greater # than the next element if arr[j]>arr[j + 1]: swapped = True arr[j], arr[j + 1] = arr[j + 1], arr[j] if not swapped: # 단일 교환을 할 필요가 없는 경우 , # 메인 루프를 종료할 수 있습니다. return # 위에서 테스트할 드라이버 코드 arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('Sorted array is:') for i in range(len(arr)): print('% d' % arr[i], end=' ')>
산출
Sorted array is: 11 12 22 25 34 64 90>
시간 복잡도 : 에2).
보조 공간 : O(1).
키보드에 f5가 뭐야?
전체 기사를 참조하세요. 버블정렬 상세 사항은!
파이썬3 def bubblesort(elements): # Looping from size of array from last index[-1] to index [0] for n in range(len(elements)-1, 0, -1): swapped = False for i in range(n): if elements[i]>elements[i + 1]: swapped = True # 요소가 배열의 다음 요소보다 작으면 데이터를 바꿉니다. elements[i], elements[i + 1] = elements[i + 1], elements[i] if not swapped : # 단일 스왑을 수행하지 않은 경우 # 함수를 종료합니다. 이는 배열이 이미 정렬되었음을 의미합니다. return elements = [39, 12, 18, 85, 72, 10, 2, 18] print('정렬되지 않은 목록은,') print(elements) bubblesort(elements) print('정렬된 배열은, ') 인쇄(요소)>
산출
Unsorted list is, [39, 12, 18, 85, 72, 10, 2, 18] Sorted Array is, [2, 10, 12, 18, 18, 39, 72, 85]>
시간 복잡도 : 에2). 그러나 실제로 이 최적화된 버전은 배열이 정렬되면 함수가 반환되므로 시간이 더 적게 걸릴 수 있습니다.
보조 공간 : O(1).