알고리즘/기초정렬 3

삽입정렬

자료구조: 일차원 배열시간 복잡도: 배열이 완전히 정렬된 경우 : 첫번째로 마주치는 반복문만 돌고 끝남배열이 거의 정렬된 경우 : O(N)  -> 사전작업을 통해 배열을 거의 정렬된 상태로 만들어놓고 삽입정렬을 수행하면 굉장히 빨라진다! 이런 매력 때문에 다른 정렬을 사용하는 경우에도 가끔씩 삽입 정렬을 섞어서 사용하곤 한다.일반적인 경우, 최악의 경우 : O(N^2)따라서 최선의 경우 O(N), 최악의 경우와 평균적인 경우 O(N^2)"재귀적 성격"을 포함하며, 삽입 정렬이 제대로 정렬한다는 것을 "수학적 귀납법"으로도 증명할 수 있다.삽입 정렬은 선택정렬보다 2.5배 정도 빠르고, 버블정렬보다 11배 정도 빠르다. ( 버블  사용 목적 : 숫자의 오름차순 or 내림차순 정렬#include #inclu..

선택정렬

자료구조: 일차원 배열 시간복잡도: 모든 경우에 O(n^2)사용 목적: 숫자의 내림차순 or 오름차순 정렬 #include #include int main(){ int arr[] = {1,2,3,4,5,6,7,8,9,10}; int arr_size = sizeof(arr) / sizeof(int); //mixing for(int i = 0; i 0; j--){ int max_num= arr[0]; int max_index = 0; for (int i = 0; i 개념 요약: (오름차순 기준) 배열의 처음부터 끝까지를 순환하여 가장 큰 값을 찾고, 맨뒤로 보내기(교환)