- 源代码
#include <cstdio>
void inserSort(int a[], int n) {
int key = a[n], i;
for(i = n - 1; i >= 0; i--) {
if(a[i] > key) a[i + 1] = a[i];
else break;
}
a[i + 1] = key;
}
void insertionSortRecur(int a[], int n) { //n表示元素的个数
if(n <= 1) return;
insertionSortRecur(a, n - 1); //减小规模
inserSort(a, n - 1);
}
int main() {
int a[10] = {1, 4, 5, 7, 8, 9, 0, 3, 2, 6}, n = 10; //待排数组
insertionSortRecur(a, n);
for(int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
return 0;
}
- 运行结果