오늘배운 내용
정렬,스택,큐,해쉬 등 이 있다.
먼저 정렬이란?
정렬이란 데이터를 순서대로 나열하는 방법을 의미한다.
정렬은 알고리즘의 굉장히 중요한 주제이다.
이진 탐색을 가능하게도 하고, 데이터를 조금 더 효율적으로 탐색할 수 있게 만들기 때문이다.
일단 가장 쉽고 직관적인 버블 정렬 먼저 알아보자.
버블 정렬은 첫 번째 자료와 두 번째 자료를, 두 번째 자료와 세 번째 자료를, 세 번째와 네 번째를, … 이런 식으로 (마지막-1)번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬하는 방식이다!
작은 숫자, 큰 숫자 순서로 있으면 내버려두고 큰 숫자, 작은 숫자 순서로 있으면 둘의 위치를 변경하면 된다.
두번째 선택 정렬
이름에서 알 수 있듯이 선택해서 정렬한다 라고 생각하면 된다..
다음과 같이 사람들이 일렬로 서 있는데, 한번 둘러보면서 가장 키 작은 사람을 찾는방법이다.
그리고 전부 다 봤다면, 그 중 가장 키 작은 사람 맨 앞으로 부른 후 다음에 또 둘러보면서 두 번째로 키 작은 사람을 두 번째에 배치 시키는
방식이다.
세번째 삽입 정렬
이번에는 선택 정렬과 다른 느낌이 이다. 선택 정렬이 전체에서 최솟값을 "선택" 하는 거 였다면,
삽입 정렬은 전체에서 하나씩 올바른 위치에 "삽입" 하는 방식이다.
선택 정렬은 현재 데이터의 상태와 상관없이 항상 비교하고 위치를 바꾸지만,
삽입 정렬은 필요할 때만 위치를 변경하므로 더 효율적인 방식이다.
이미 키 순으로 정렬된 사람들이 일렬로 나란히 있는데,
다음 원소가 그 정렬된 사람들 사이를 비집고 들어가면서 여기가 내 자리다 ,하면서 삽입하며 정렬하는 방식입니다.
네번째 병합 정렬
병합 정렬은 배열의 앞부분과 뒷부분의 두 그룹으로 나누어 각각 정렬한 후 병합하는 작업을 반복하는 알고리즘이다.
예를 들어서 A 라고 하는 배열이 1, 2, 3, 5 로 정렬되어 있고, B 라고 하는 배열이 4, 6, 7, 8 로 정렬되어 있다면 이 두 집합을 합쳐가면서 정렬하는 방법이다.
오늘 배운 내용은 솔직히 어려운 개념이다. 그래서 하루만에 이걸 이해 한다는건 나한테 무리다.
그래서 오늘은 이런 개념들이 있다 는 생각으로 듣고
Python 기초문법 복습 과 Django수업 예습 형식으로 공부 한 하루였다.
내일 부터 본격 적인 Django 수업인데, 예습형식으로 공부 해보았는데 재미있었다.
처음 배워서 그런건지 몇 주 동안 배웠던게 어려워서 다른걸 시작해서 재미있는지는
앞으로 더 지켜보아야 될 것 같다.
'TIL(Daily)' 카테고리의 다른 글
Fri/16/Dec/22- 최종 프로젝트 12 (0) | 2022.12.16 |
---|---|
Mon/13/Dec/22- 최종프로젝트-8 (0) | 2022.12.13 |
Tue/20/Sep/20-자료구조 알고리즘&클래스 (1) | 2022.09.20 |
Mon/19/Sep/22- 자료구조,알고리즘 1주차 (0) | 2022.09.19 |
Fri/16/Sep/22-복습과 다음주 수업 준비. (0) | 2022.09.17 |
댓글