본문 바로가기
반응형

sort3

알고리즘 정렬(sort) - 퀵정렬(Quick sort) ●퀵정렬(Quick sort) - 어느 한 값을 기준으로 이 값보다 작은값을 갖는 데이터와 큰 값을 갖은 데이터를 분리하여 2개의 그룹으로 나눈다. 그리고나서 각 그룹에 대해 위 작업을 재귀적으로 반복해서 정렬한다. 다른 정렬보다 평균적인 실행시간이 빠르다. ●퀵정렬 코드( 제대로 정렬이 안됨, 나중에 수정) #include #include int i, n = 10, data[10] = {3, 7, 8, 2, 9, 1, 4, 7, 6, 5}; void quick(int array[], int left, int right) { int choice; int i, j, temp; if(left=j) //교환할 데이터가 없으면 break break; temp=array[i]; array[i]=array[j]; .. 2012. 4. 1.
알고리즘 정렬(sort) - 선택정렬(Selection sort) ●선택정렬(Selection sort) - 데이터에서 가장 큰 값을 찾아서 마지막 위치에 있는 데이터와 교환하고, 그 다음 두번째로 큰 값을 갖은 데이터를 찾아서 마지막 전 위치에 있는 데이터와 교환한다. 이런식으로 모든 데이터를 정렬한다. ●선택정렬 코드 #include int i, n=10, data[10] = {32, 1, 15, 2, 7, 3, 9, 7, 92, 12}; void select(int array[], int n) { int i, j, temp; for(i=0; i 2012. 4. 1.
알고리즘 정렬(sort) - 삽입정렬(Insert sort) ●삽입정렬(Insert sort) - 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. 배열이 길수록 효율은 떨어진다. 출처 - 위키백과 ●삽입정렬 코드 #include int i, n=10, data[10] = {30,5, 32,11, 98, 34, 12, 54, 32, 543}; void insert(int array[], int n) { int temp, k; temp = k = 0; for(i=1; i=0 && array[k]>temp) { array[k+1] = array[k]; k--; array[k+1] = temp; } } } void output() { for(i=0; i 2012. 4. 1.
반응형