插入排序
#include <iostream>
using namespace std;
int main(){
int a[10]={99,1,2,3,164,5,6,71,8,4};
int max;
for(int i=1;i<10;i++){
for(int j=i;j>0;j--){
if(a[j-1]>a[j]){
swap(a[j],a[j-1]);
}else{
break;
}
}
}
for(int i=0;i<10;i++){
cout<<a[i]<<" ";
}
return 0;
}
//基本思想:把要排序的数组分为已排序和未排序两部分,
//再从未排序部分逐个去除元素,
//把它和已排序元素进行比较,
//从右到左比较相邻的两个元素,
//如果右边的元素比左边的元素小,
//则交换两个元素,并向左继续比较和交换,
//否则就停止比较。
//按此处理未排序部分的所有元素,
//最终得到一个按升序排序的有序组织。
//这种算法也叫直接插入排序

浙公网安备 33010602011771号