C++插入排序的递归算法
收获:关于执行操作与调用递归的顺序的思考,例如插入排序应该先调用递归再执行操作,这样能得到最内层的结果,一层层返回到外层。
代码:
#include <iostream>
#include<stdio.h>
//#define _CRT_SECURE_NO_DEPRECATE
//#pragma warming(disable:4996)
using namespace std;
void sort(int arr[], int k)
{
if (k == 2)
{
if (arr[0] > arr[1])
{
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
}
return;
}
sort(arr, k - 1);
int i = k - 1;
while ((arr[i] < arr[i - 1]) && (i > 0))
{
int temp = arr[i];
arr[i] = arr[i - 1];
arr[i - 1] = temp;
i = i - 1;
}
}
int main()
{
int arr[10] = { 7,5,9,6,1,2,3,8,4,0 };
sort(arr, 10);
for (int i = 0; i < 10; i++)
{
cout << arr[i] << " ";
}
}