插入排序
原理:通过构建有序数列,把未排列数据,通过扫描,插入到有序数列的合适位置
插入排序的基本思想:每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有的待排序记录全部插入为止,所以内层循环为顺序表的插入算法,外层循环从第二个元素到最后一个元素。
#include <iostream>
using namespace std;
int main() {
int a[6]= {1,2,4,5,7,0};//假设数组中有六个数
for(int j=1; j<6; j++) {
int temp=a[j];
bool flag=true;//用于表示temp是不是最小的数
for(int i=j-1; i>=0; i--) {
if(a[i]>temp) {
a[i+1]=a[i];
} else {
flag=false;//temp不是最小的
a[i+1]=temp;
break;
}
}
//如果temp是当前数组中最小的数
if(flag==true) a[0]=temp;
}
for(int i=0; i<6; i++) cout<<a[i]<<' ';
return 0;
}