삽입 정렬 알고리즘은 또한 정렬 직접 삽입 알려진 단답형 정렬 알고리즘이며, 정렬 알고리즘은 안정적이고, 로컬 순서 데이터의 더 높은 효율을 가진다
삽입 정렬 알고리즘 (n은 0의 역순 시간 복잡도에 정렬되도록, 0 (N)의 정렬 시간 복잡도의 정렬 된 순서로, 최악의 경우가 최선의 경우를 정렬 할 소량의 데이터를위한 효율적인 * N )
알고리즘의 아이디어는 : 혼돈의 시퀀스 데이터에서 모든 시간 초과, 시퀀스 장애의 모든 데이터가 올바른 장소를 발견 할 때까지, 반복, 정확한 위치에 넣어 순서 정렬
도 1에 도시 된 방법을 사용하여 이하이다.
그리고 C 언어에서이 과정을 실현
#include<stdio.h>
void insertSort(int arr[],int len){
for (int i = 1; i < len; i++)
{
if (arr[i]<arr[i-1]){
int temp = arr[i]; //利用temp保存当前i位置的数据值
int j = i - 1;
for (; j >= 0 && arr[j] > temp ; j--)
{
//数据进行后移
arr[j+1] = arr[j];
}
arr[j + 1] = temp;
}
}
}
void printArray(int arr[],int len){
for (int i = 0; i < len; i++)
{
printf("%d\n",arr[i]);
}
}
void test01(){
int arr[] = {5,9,6,1,3,7};
int len = sizeof(arr)/sizeof(int);
insertSort(arr,len);
//打印数组
printArray(arr,len);
}
int main(){
test01();
return 0;
}