实现思路:
1.从数组的第二个数据开始往前比较,即一开始用第二个数和他前面的一个比较,如果 符合条件(比前面的大或者小,自定义),则让他们交换位置。
2.然后再用第三个数和第二个比较,符合则交换,但是此处还得继续往前比较,比如有 5个数8,15,20,45,
17,17比45小,需要交换,但是17也比20小,也要交换,当不需 要和15交换以后,说明也不需要和15前面的数据比较了,肯定不需要交换,因为前
面的数据都是有序的。
3.重复步骤二,一直到数据全都排完。
void insertSort(int a[], int nlen) { for (int i = 1; i < nlen;i++) { int n = a[
i]; for (int j = i-1; j >= 0;j--) { if (a[j]> n) { a[j + 1] = a[j]; a[j] = n; }
} } } int main() { cout << "原始数组1:\n"; int a[] = { 1, 3, 5, 7, 11,9, 2, 4, 6, 8,
10 }; for (auto node :a) { cout << node << " "; } cout << "\n排序后:\n"; insertSort
(a, sizeof(a)/sizeof(a[0])); for (auto node :a) { cout << node << " "; } cout <<
endl; cout << "***************华丽的Ty分割线***************\n"; int b[] = { 2, 8, 1,
7, 11, 99, 22, 3 }; cout << "原始数组2:\n"; for (auto node : b) { cout << node << "
"; } cout << "\n排序后:\n"; insertSort(b, sizeof(b) / sizeof(b[0])); for (auto node
: b) { cout << node << " "; } cout << endl; system("pause"); return 0; }
结果: