所谓插入排序法,就是检查第i个数字,如果在它的左边的数字比它大,进行交换,这个动作一直继续下去,直到这个数字的左边数字比它还要小,就可以停止了。插入排序法主要的回圈有两个变数:i和j,每一次执行这个回圈,就会将第i个数字放到左边恰当的位置去。
#include<iostream> using namespace std; void insertSort(int arr[], int len) { for (int i = 1; i < len; i++) { int temp = arr[i]; int j = i-1; while (j > -1 && arr[j] > temp) { arr[j+1] = arr[j]; j--; } arr[j+1] = temp; } } int main() { int arr[] = { 7,8,9,5,4,3,2,1 }; int len = sizeof(arr) / sizeof(arr[0]); insertSort(arr, len); for (int i = 0; i < len; i++) { cout << arr[i] << endl; } system("pause"); }
