二、插入排序
1 算法
1) 从第一个元素开始,该元素可以认为已经被排好序;
2) 取出下一个元素,在已经排序的元素序列中从后向前扫描;
3) 若该元素大于取出的元素,则将该元素移(覆盖)到下一位置;
4) 若该元素小于等于取出的元素,则将取出的元素插入到该元素之后;
1 算法
1) 从第一个元素开始,该元素可以认为已经被排好序;
2) 取出下一个元素,在已经排序的元素序列中从后向前扫描;
3) 若该元素大于取出的元素,则将该元素移(覆盖)到下一位置;
4) 若该元素小于等于取出的元素,则将取出的元素插入到该元素之后;
5) 重复步骤2,直至处理完所有的元素。
#include <iostream>
using namespace std;
void InsertSort(int data[], int size)
{
for(int i=1;i<size;i++)
{
int temp=data[i],j;
for(j=i;j>0&&temp<data[j-1];j--)
data[j]=data[j-1];
data[j]=temp;
}
}
int main(void)
{
int data[]={13,23,20,12,15,31,19,26,24,37};
int size=sizeof(data) /sizeof(data[0]);
InsertSort(data,size);
for(int i=0;i<size;i++)
cout<<data[i]<<' ';
cout<<endl;
return 0;
}