본문 바로가기
반응형

자료구조11

[자료구조] 삽입정렬(Insertion Sort) 삽입정렬이란 - 선택 정렬과 유사하지만, 좀 더 효율적인 정렬 알고리즘이다. - 2번째 원소부터 시작하여 그앞에있는 원소들과 비교해서 삽입할 위치를 지정한 후, 원소를 뒤로 옮기고 지정된 자리에 자료를 삽입하는 정렬 알고리즘이다. - 손안의 카드를 정렬하는 방법과 유사하다. - 시간 복잡도 : O(n^2) # include # define MAX_SIZE 5 // 삽입 정렬 void insertion_sort(int list[], int n){ int i, j, key; // 인텍스 0은 이미 정렬된 것으로 볼 수 있다. for(i=1; i=0 && list[j]>key; j--){ list[j+1] = list[j]; // 레코드의 오른쪽으로 이동 } list[j+1] = key; } } void ma.. 2024. 1. 15.
[자료구조] 선택정렬(Selection Sort) 선택정렬이란 - 버블정렬과 유사한 알고리즘으로, 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택하는 알고리즘이다. - 첫번째 자료를 두번째 자료부터 마지막 자료까지 차례대로 비교해가면서 가장 우선순위가 높은 값을 찾아 배열 첫번째에 위치 시키고 원래 해당 자리에 있던 원소와 자리를 바꾼다. - 시간 복잡도 : O(n^2) # include # define SWAP(x, y, temp) ( (temp)=(x), (x)=(y), (y)=(temp) ) # define MAX_SIZE 5 // 선택 정렬 void selection_sort(int list[], int n){ int i, j, least, temp; // 마지막 숫자는 자동으로 정렬되기 때문에 (숫자 개수-1) 만큼.. 2024. 1. 15.
[자료구조] 버블정렬(Bubble Sort) 버블정렬이란 - 인접한 두 원소를 비교해 나가며 가장 큰원소를 끝으로 보내는 과정을 N - 1 번 반복하는 알고리즘이다. - 정렬 과정에서 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어졌다고 한다. - 구현하기엔 쉽지만 성능이 아쉬운 정렬이다. - 시간 복잡도 : O(n^2) # include # define MAX_SIZE 5 // 버블 정렬 void bubble_sort(int list[], int n){ int i, j, temp; for(i=n-1; i>0; i--){ // 0 ~ (i-1)까지 반복 for(j=0; j 2024. 1. 15.
반응형