[알고리즘] 정렬 (Sorting)

guns.velog·2020년 5월 18일
0
post-custom-banner

정렬이란? (Sorting)

  • 어떤 데이터들을 정해진 순서대로 나열

버블정렬 (Bubble sort)

앞에서부터 2개의 데이터를 비교하여 작은 데이터가 앞으로 가도록 정렬

예시) (출처:http://blog.naver.com/PostView.nhn?blogId=justant&logNo=20204028286&parentCategoryNo=&categoryNo=15&viewDate=&isShowPopularPosts=true&from=search)

python 코드

def bubble_sort(lst):
    for i in range(len(lst)-1):
        swap = True
        for j in range(len(lst)-1-i):
            if lst[j] > lst[j+1]:
                lst[j], lst[j+1] = lst[j+1], lst[j]
                swap = False
            print(lst)
        if swap == True:
            break
    return lst

선택정렬

맨 앞의 데이터와 나머지 데이터를 비교 후 최소값을 맨 앞의 데이터와 교체
맨 앞을 제외한 다음 데이터부터 다시 동일하게 진행
위 내용을 반복

예시) (출처:http://blog.naver.com/PostView.nhn?blogId=jsky10503&logNo=221249976761)

python 코드

def selection_sort(lst):
  for i in range(len(lst)-1):
      a = i
      for j in range(i+1, len(lst)):
          if lst[a] > lst[j]:
              a=j
      lst[i], lst[a] = lst[a], lst[i]
  return lst

삽입정렬

두 번째 인덱스부터 시작
해당 data 앞 데이터부터 비교, 첫 데이터 까지 비교 반복
더 작은 데이터를 만나면 서로 변경

예시)(출처:http://blog.naver.com/PostView.nhn?blogId=justant&logNo=20204025251)

python 코드

def insert_sort(lst):
    for i in range(1, len(lst)):
        for j in range(i,0,-1):
            if lst[j] < lst[j-1]:
                lst[j], lst[j-1] = lst[j-1], lst[j]
                print(lst)
            else:
                break
    return lst
post-custom-banner

0개의 댓글