#include "stdafx.h"
#include<iostream>using namespace std;void InsertSort(int a[], int n){ for (int j = 1; j < n; j++) { int key = a[j]; //待排序第一个元素 int i = j - 1; //代表已经排过序的元素最后一个索引数 while (i >= 0 && key < a[i]) { //从后向前逐个比较已经排序过数组,如果比它小,则把后者用前者代替, //其实说白了就是数组逐个后移动一位,为找到合适的位置时候便于Key的插入 a[i + 1] = a[i]; i--; } a[i + 1] = key;//找到合适的位置了,赋值,在i索引的后面设置key值。 }}int
main() { int d[] = { 12, 15, 9, 20, 6, 31, 24 }; cout << "输入数组 { 12, 15, 9, 20, 6, 31, 24 } " << endl; InsertSort(d,7); cout << "排序后结果:"; for (int i = 0; i < 7; i++) { cout << d[i]<<" "; } return 0;
}
浙公网安备 33010602011771号