퀵소트 알고리즘에 대해서는 위에서 언급이 되었으므로, 이를 구현하기 위한 세부 코드에 대해 연습을 통해 이해합니다.
data_list = [1, 2, 3, 4, 5] 출력: print (data1) print (data2) print (data3) [1, 2] 3 [4, 5]
data_list = [1, 2, 3, 4, 5]
data1 = data_list[:2]
data2 = data_list[2]
data3 = data_list[3:]
print (data1)
print (data2)
print (data3)
data_list = [4, 1, 2, 5, 7]
pivot = data_list[0]
for index in range(1, 5):
print (index)
data_list = [4, 1, 2, 5, 7]
left = list()
right = list()
pivot = data_list[0]
for index in range(1, 5):
if data_list[index] < pivot:
left.append(data_list[index])
else:
right.append(data_list[index])
print (left)
print (right)
import random data_list = random.sample(range(100), 10) left = list() right = list() pivot = data_list[0] for index in range(1, -----------------): if data_list[index] < pivot: left.append(data_list[index]) else: right.append(data_list[index])
import random
data_list = random.sample(range(100), 10)
left = list()
right = list()
pivot = data_list[0]
for index in range(1, len(data_list)):
if data_list[index] < pivot:
left.append(data_list[index])
else:
right.append(data_list[index])
print (left, pivot, right)
data_list = [4, 3, 2]
data_list = [4, 3, 2]
left = list()
right = list()
pivot = data_list[0]
for index in range(1, len(data_list)):
if data_list[index] < pivot:
left.append(data_list[index])
else:
right.append(data_list[index])
print (left, pivot, right)
리스트로 만들어서 리턴하기: return quick_sort(left) + [pivot] + quick_sort(right)
import random
data_list = random.sample(range(100), 10)
def quick_sort(data_list):
if len(data_list) <= 1:
return data_list
left, right = list(), list()
pivot = data_list[0]
for index in range(1, len(data_list)):
if pivot > data_list[index]:
left.append(data_list[index])
else:
right.append(data_list[index])
return quick_sort(left) + [pivot] + quick_sort(right)
quick_sort(data_list)
def quicksort(data_list):
if len(data_list) <= 1:
return data_list
pivot = data_list[0]
left, right = list(), list() # 다른 언어에서 잘 보지 못하는 구문 (다른 언어에서는 각각 다른 라인에 작성해야 함)
left = [data for data in data_list[1:] if data <= pivot]
right = [data for data in data_list[1:] if data > pivot]
return quicksort(left) + [pivot] + quicksort(right)