알고리즘 안정성 :
및 정렬 후, A [I]는 [J] 여전히 - 안정성 알고리즘 종래 정렬하기, [I]는 [J] 상기의 경우, 일련의 [J]을 [I]의 존재 = 가정 앞. 그런 다음 정렬 알고리즘은 안정!
삽입 정렬 :
직접 삽입 정렬 :
개념 :
테이블에 레코드가 새로운 정렬 된 목록을 얻기 위해 좋은 순서를 분류하고있다. (시간 복잡도, 공간 복잡도는 (1) 인 O (N ^ 2) O이다)
각각의 순차 탐색에 대응.
예 :
{4,938,659,776,132,749}
#include <stdio.h>
#include <stdlib.h>
void InsertSort(int *a, int length)
{
int i , j;
for(i = 1;i <= length; i++)
{
if(a[i] < a[i - 1])
{
int temp = a[i];
for(j = i - 1; j >= 0 && a[j] > temp; j--)
{
a[j + 1] = a[j];
}
a[j+1] = temp;
}
}
for(i = 0; i <= length; i++)
printf("%d ", a[i]);
}
int main(void)
{
int i;
int a[] = {49, 38, 65, 97, 76, 13, 27, 49};
int k = sizeof(a) / sizeof(a[0]);
InsertSort(a, k - 1);
return 0;
}
이진 삽입 정렬 :
이진 검색 또는 이진 검색에 해당
개선 삽입 정렬 : 개념.
바이두 백과 사전 : https://baike.baidu.com/item/%E6%8A%98%E5%8D%8A%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA% 8F / 8,208,853
새로운 소자의 공정에서 배치의 첫 번째 요소가 삽입 지점에 대한 검색의 배열을 정렬되어 삽입되는 상기 영역에 삽입하는 단계 [저]이며, 소자의 끝은 [고] 휠 비교로 설정 m = (고 저 +가) / 요소 및 [m]에 삽입 될 때 2하는 기준 요소보다 작 으면, A [m-1]의 새로운 삽입 영역에 [저]을 선택하는 경우에 비해 (즉 너무 낮은 <= 높은 성립되지 않은, 즉 이러한 위치 이후의 모든 요소가 움직일 때까지 높은 =의 m-1), 또는 A [고] 새 삽입 영역에 [m + 1]을 선택 (즉, 낮은 =의 m + 1) 하나의 새로운 요소를 삽입하는 [1 + 높은]. (시간 복잡성과 공간의 복잡성과 같은 종류의 삽입)
코드 :
https://www.cnblogs.com/tensory/p/6590799.html
void InsertSort2(int *a, int length)
{
int i , j, low, high, mid;
for(i = 1; i < length; i++)
{
low = 0;
high = i - 1;
while(low <= high)
{
mid = (low + high) / 2;
if(a[mid] < a[i])
{
low = mid + 1;
}else
{
high = mid - 1;
}
}
int temp = a[i];
for(j = i; j > low; j--)
a[j] = a[j - 1];
a[low] = temp;
}
for(i = 0; i <= length; i++)
printf("%d ", a[i]);
}
힐 정렬 :
개념 :
쉘 정렬 단위 기록 패킷 직접 삽입 정렬 각 정렬 알고리즘의 사용을 가압 대상이다 증가가 점진적으로 더 많은 키워드를 감소 각각 증가가 1로 감소하는 경우에있어서, 전체 파일이 하나의 세트로 나누어 져, 알고리즘은 종료됩니다.
코드 :
https://www.cnblogs.com/chengxiao/p/6104371.html
교환 정렬 :
버블 정렬 :
빠른 정렬 :
선택 정렬 :
간단하게 정렬 선택 :
트리 선택 정렬 :
힙 정렬 :
일종의 병합 :
기수 정렬 :
멀티 키워드 정렬 :
체인 기수 정렬 :
외부 정렬 :
그리고 균형 정렬 병합 :
교체 - 선택 정렬 :
제일 병합 번호 :
개념 :
예 :
버블 정렬 :
개념 :
예 :
빠른 정렬 :
개념 :
예 :
삽입 정렬 :
개념 :
예 :