一.算法简介
插入排序是最简单的排序算法之一,对于那些少量的数据来说,这个算法无疑是非常高效实用的,它的基本思想是将一个记录(也可以说是数据吧我觉得)插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表(基本思想看的百度^_^)。
二.实现过程
插入排序的算法实现其实就是把第一个数当成有序序列,然后,在此之后的数依次插入到有序序列中合适的位置(也就是前面比它小,后面比它大的位置),如果遇到相等的,就放在相等的数的后面。
给大家展示一张图吧
我觉的这张图把排序过程展示的很清晰了,大家有不懂的再问吧。
下面展示下代码
#include <iostream>
using namespace std;
void Insertion_Sort(int a[],int n);
int main(){
int a[1000];
int n;
cin >> n;
int i;
for(i=0;i<n;i++){
cin >> a[i];
}
Insertion_Sort(a,n);
for(i=0;i<n;i++) cout << a[i] << " ";
system("pause");
return 0;
}
void Insertion_Sort(int a[],int n){
int i,j;
for(i=1;i<n;i++){
int k=a[i];
j=i-1;
while(j>=0&&a[j]>k){
a[j+1]=a[j];
j--;
}
a[j+1]=k;
}
}