算法描述
把待排序的数组分成已排序和未排序两部分,初始的时候把第一个元素认为是已排好序的。
从第二个元素开始,在已排好序的子数组中寻找到该元素合适的位置并插入该位置。
重复上述过程直到最后一个元素被插入有序子数组中。
代码实现:
//插入排序
#include<stdio.h>
void swap(int &a,int &b){
int t;
t=a;
a=b;
b=t;
}
int main(){
int i,j,a[15]={13,15,28,6,2,-1,9,8,45,37,68,12,24,10,26};
int temp,position;
for(i=1;i<15;i++){
if(a[i]<a[i-1]){
temp=a[i];j=i-1;
do{
a[j+1]=a[j];j--;
}while(j>=0&&temp<a[j]);
a[j+1]=temp;
}
}
for(int k=0;k<15;k++){
printf("%d ",a[k]);
}
return 0;
}