直接插入排序的递归与非递归实现

来源:互联网 发布:linux 关闭所有防火墙 编辑:程序博客网 时间:2024/06/06 14:25

递归实现:

代码:

#include<iostream>using namespace std;void DirectInsertSort(int *arr, int length){if (length == 1)return;DirectInsertSort(arr, length-1);int temp = arr[length-1];int j=length-2;for (; j>=0&&temp<arr[j]; j--)arr[j+1] = arr[j];arr[j+1] = temp;}int main(){int arr1[10] = {5,6,1,8,3,6,7,5};DirectInsertSort(arr1,8);for (int i=0; i<8; i++)cout << arr1[i] << " ";cin.get();cin.get();return 0;}


 

运行结果:

非递归实现:

代码:

#include<iostream>using namespace std;void DirectInsertSort(int *arr, int length){int i,j,key;for (i=1; i<length; i++){key = arr[i];for (j=i-1; j>=0&&key<arr[j]; j--)arr[j+1] = arr[j];arr[j+1] = key;}}int main(){int arr1[10] = {5,6,1,8,3,6,7,5};DirectInsertSort(arr1,8);for (int i=0; i<8; i++)cout << arr1[i] << " ";cin.get();cin.get();return 0;}


 

运行结果:

原创粉丝点击