arr = [40, 70, 60, 30, 10, 50]
print(f'선택정렬 전 : {arr}')
print("+" *40)
for i in range(len(arr) - 1):
min_idx = i
for j in range(min_idx + 1, len(arr)):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
print(f'{i+1}단계: {arr}')
print("+"*40)
print(f'선택정렬 결과 : {arr}')
def select_sort(arr):
min_idx= 0
print(f'선택 정렬 전 : {arr}')
for i in range(len(arr) -1):
min_idx = i
print(f'인덱스[{min_idx}]의 값인 {arr[min_idx]}의 위치', end='->')
for j in range(min_idx + 1, len(arr)):
if arr[j] < arr[min_idx]:
min_idx = j
arr [i], arr[min_idx] = arr[min_idx], arr[i]
print(f'배열에서 가장 작은 값인 {arr[i]}위치[{min_idx}]와 변경')
print(f'인덱스[{i}]단계 교환 후 결과: [arr]')
print()
print("="*70)
print(f'선택 정렬된 이후: {arr}')
array=[40,70,60,30,10,50]
select_sort(array)
arr = ["다", "나", "마", "가", "사", "바", "라"]
print(f'정렬 전: {arr}')
print('-'*50)
for i in range(len(arr)-1, 0, -1):
for j in range(i):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
print(f'리스트에서 서로 이웃한 현재 값 중 작은 값인 "{arr[j]}"의 인덱스 [{j+1}]의 위치를 변경하면')
print(f'[단계별 교환 후 정렬 과정 : {arr}]')
else:
print(f'[단계별 교환 후 정렬 과정 : [{arr[j]}]와 {[arr[j+1]]}의 값 크기가 변동 없음]')
print()
print('+'*50)
print(f'정렬 후 : {arr}')
import random
def bubble(arr):
for i in range(len(arr)-1, 0, -1):
for j in range(i):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
print(f'리스트에서 서로 이웃한 현재 값 중 작은값인 "{arr[j]}"의 인덱스[{j+1}] 위치를 변경하면')
print(f'[단계별 교환 후 정렬 과정 : {arr}]')
else:
print(f'[단계별 교환 후 정렬 과정 : [{arr[j]}]와 {[arr[j+1]]}의 값 크기가 변동 없음]')
print()
print('+'* 50)
print(f'정렬 후 : {arr}')
array1= random.sample(range(1, 101), 6)
print(f'정렬 전: {arr}')
print('='*50)
bubble(array1)
s_list = list()
def stack_push(value):
s_list.append(value)
print(s_list)
def stack_pop():
print('+++삭제되는 순서+++')
while len(s_list)!= 0:
value = s_list.pop()
print(f'{value}', end= "")
print("+++삽입되는 순서+++")
stack_push('a')
stack_push('b')
stack_push('c')
stack_push('d')
stack_push('e')
stack_push('f')
stack_push('g')
stack_pop()