算法导论 · 减治法 · 递归实现插入排序

  • 源代码
#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; 
}
  • 运行结果
    在这里插入图片描述
发布了77 篇原创文章 · 获赞 40 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/y_dd6011/article/details/97431459