根据思路写了一篇插入排序:
#include <iostream>
using namespace std;
/*插入排序,思想:把一个数组分为左右两部分,左边是有序的,右边是无序的
把无序数插入到左边有序的数组中。
当无序的部分没有了,排序完成
*/
int main(void)
{
freopen("in.txt","r",stdin);
int a[10];
for(int i=0;i<10;i++){
cin >> a[i]; // 6 4 9 7 1 0 2 3 8 5
}
// finish input
//start sort
for(int i=1;i<10;i++){ //i是混乱数
for(int j=0;j<i;j++){ //j是有序数
if(a[j]>a[i]){
//如果有序数比混乱数大,那么这个要插入的位置下标j就找到了
int temp = a[i];
for(int k=i;k>j;k--){
a[k] = a[k-1]; //这步操作把a[i] 抹掉了,所以拿temp来保存a[i]
}
a[j] = temp; //插入成功
}
}
}
// test
for(int i=0;i<10;i++){
cout << a[i] << " "; // 0 1 2 3 4 5 6 7 8 9
}
return 0;
}
运行结果: