데이터 구조 - 정렬 알고리즘 (기초)
/* */
void insertion_sort (element arr[], int n) {
int i,j;
element next;
for(i = 1; i<n; i++) {
/* */
next = arr[i];
/* next */
for(j = i-1; j>=0 && next<arr[j]; j--) {
arr[j+1] = arr[j];
}
/* */
arr[j+1] = next;
}
}
2. 힐 정렬 (삽입)
<span style="font-size:14px;">void shell_sort(element arr[], int n) {
int i, j;
int dis = n/2;
while(dis >= 1) {
for(i = dis; i<n; i++) {
element next = arr[i];
//next , , next
for(j = i - dis; next<arr[j] && j>=0; j = j-dis) {
arr[j+dis] = arr[j];
}
arr[j+dis] = next;
}
dis /= 2;
}
}</span>
3. 거품 정렬 (교환)
void bubble_sort(element arr[], int n) {
int i, j;
for(i = 0; i<n; i++) {
for(j = 0; j<n-i-1; j++){
if(arr[j]>arr[j+1]) {
arr[j] = arr[j] + arr[j+1] - (arr[j+1] = arr[j]);
}
}
}
}
4. 빠 른 정렬 (교환)
/* ( )*/
void quick_sork(element arr[] ,int left ,int right) {
int i, j;
element pivot, temp;
if(left < right) {
//i ,j
i = left;
j = right;
//
pivot = arr[left];
/*
1. pivot
2. pivot
3. i<j
*/
do {
do
i++;
while(arr[i]<pivot);
do
j--;
while(arr[j]>pivot);
if(i<j){
arr[i] = arr[i] + arr[j] - (arr[j] = arr[i]);
}
}while(i < j);
// pivot j
arr[left] = arr[left] + arr[j] - (arr[j] = arr[left]);
/*
pivot pivot
1.left,j-1
2.j+1,right
*/
quicksork(arr, left, j-1);
quicksork(arr, j+1, right);
}
}
5. 정렬 선택
/* */
void select_sort(element arr[], int n) {
int i, j;
int min;
for(i = 0; i<n; i++) {
min = i;
//
for(j = i+1; j<n; j++) {
if(arr[min]>arr[j]) {
min = j;
}
}
// ,
arr[i] = arr[i] + arr[min] - (arr[min] = arr[i]);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java를 사용하여 힐 정렬 알고리즘을 구현하는 간단한 예소개 힐 정렬 (축소 증량법) 은 삽입 클래스 정렬에 속한다. 셸에 의하면 힐 정렬은 직접 삽입 정렬에 대해 간단하게 개선했다. 힐 정렬은 삽입 정렬에서 요소 간의 간격을 확대하고 이 간격이 있는 요소에 삽입 정렬을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.