[기본문제풀이] counting_sort
풀이 일시 : 2020-08-04 계수정렬 : 크기를 기준으로 세는 알고리즘이다. 그 크기에 맞는 숫자들의 갯수를 세는 것 문제 : 132432531234435123523143512111 을 정렬하라 풀이 : #include int main(void) { int count[6]; int array[30] = { 1,3,2,3,2,5,3,1,2,3,3,5,1,2,3,5,2,3,1,3,5,1,2,1,1,1 }; for (int i = 1; i
2020. 12. 27.
[기본문제풀이] insertion_sort
풀이 일시 : 2020-08-04 삽입정렬 : 거의 정렬되어있을때 빠른 알고리즘이다. 각 숫자를 필요할때만 적절한 위치에 삽입하는 방법이다. O(N^2) 문제 : 1,10,5,8,7,6,4,3,2,9를 오름차순으로 정렬하시오 풀이 : #include int main() { int array[] = { 1,10,5,8,7,6,4,3,2,9 }; int i, j, temp; for (i = 0; i = 0 && array[j] > array[j + 1]) { //현재값이 다음값보다 크면 SWAP temp = array[j]; array[j] = array[j + 1]; array[j + 1] ..
2020. 12. 27.
[기본문제풀이] quick_sort
풀이 일시 : 2020-07-28 퀵정렬 -> 피벗값을 설정하고 나눈다. 보통 첫번째 원소를 피벗으로 설정 -> 피벗값보다 큰 값을 왼쪽부터 찾고 피벗보다 작은값을 오른쪽부터 찾는다. -> 피벗값보다 작은값,큰값찾으면 : 작은값의 인덱스가 큰 값의 인덱스보다 크면 값끼리자리바꿈 -> 피벗값보다 작은값,큰값찾으면 : 작은값의 인덱스가 큰 값의 인덱스보다 작으면 피벗과 작은값 자리바꿈. 시간복잡도는 O(N*logN) 문제 : 1 10 5 8 7 6 4 3 2 9 다음 숫자들을 오름차순으로 정렬하는 프로그램을 작성하시오 풀이 : #include int number = 10; int data[] = { 1, 10, 5, 8, 7, 6, 4, 3, 2, 9 }; void quickSort(int* data..
2020. 12. 27.