插入排序
插入排序理解的话简单粗暴,就和咱们平常打扑克牌一样,手里拿着需要排序的元素,将其直接插入到合适的位置处。
插入和冒泡一样都有一种优化算法,叫拆半插入。
算法步骤:
将第一待排序序列第一个元素看作一个有序序列,把第二个元素到最后一个元素当成是末排序序列。
int main()
{
int a[10];
int len = (int)sizeof(a)/sizeof(a[0]); //获取数组元素大小
for(int i;i<len;i++){
cin>>a[i];
}
for(int i = 0;i<len;i++){
int key = a[i];
int j = i - 1;
while((j>=0)&&(a[j]>key)){ //开始选择插入位置
a[j+1] = a[j]; //如果前面元素大于后面元素进行交换值
j--;
}
a[j+1] = key; //确定插入位置
}
for(int x = 0; x<len;x++)
{
cout<<a[x]<<" ";
}
return 0;
}