Algorytm/문제풀이

정렬

JiWonSon 2022. 12. 1. 14:02

1) 선택 정렬

#임의의 배열 7개
array = [2,7,4,1,6,9,0] 

for i in range(len(array)):
  min = i
  for j in range(i+1, len(array)):
    if array[min] > array[j]:
      min = j
  array[i], array[min] = array[min], array[i]
print(array)

2) 삽입 정렬

#임의의 배열
array = [2,7,4,1,6,9,0] #7개

for i in range(1, len(array)):
  for j in range(i, 0, -1):
    if array[j] < array[j-1]:
      array[j-1], array[j] = array[j], array[j-1]
    else:
      break
print(array)

3) 퀵 정렬

#임의의 배열
array=[4,5,0,1,9,7,6]

def quick_sort(array,start,end):
    if start>=end:
        return
    pivot=start
    left=start+1
    right=end

    while left<=right:
        while left<=end and array[left]<=array[pivot]:
            left+=1
        while right>start and array[right]>=array[pivot]:
            right-=1
        if left>right:
            array[pivot],array[right]=array[right],array[pivot]
        else:
            array[left],array[right]=array[right],array[left]
    quick_sort(array,start,right-1)
    quick_sort(array,right+1,end)

quick_sort(array,0,len(array)-1)
print(array)