自己实现的递归代码
来源:互联网 发布:mac锁屏界面 编辑:程序博客网 时间:2024/06/03 16:41
#include<iostream>
using namespace std;
void quick_sort(int* nums,int l,int r)
{
int key_num = nums[(l + r) / 2];//向下取整??
int i = l;
int j = r;
while (i <= j)
{
while (nums[i] < key_num)//查找
i++;
while (nums[j]>key_num)
j--;
if (i <= j)
{//交换元素,增加游标
int temp=nums[i];
nums[i] = nums[j];
nums[j] = temp;
i++;
j--;
}
}
if (j > l)//左半部分继续排序,
quick_sort(nums, l, j);
else return;//递归终止条件,当只有一个元素时则不用排序,因为其本身就是有序的
if (i < r)
quick_sort(nums, i, r);
else return;//递归终止条件
}
int main()
{
int n;
cout << "input nu" << endl;
cin >> n;
int * nums=(int*)malloc(sizeof(int));
for (int i = 0; i < n; i++)
{
int temp;
cin >> temp;
nums[i] = temp;
}
quick_sort(nums, 0, n - 1);
for (int i = 0; i < n; i++)
{
cout << nums[i]<<' ';
}
return 0;
}
using namespace std;
void quick_sort(int* nums,int l,int r)
{
int key_num = nums[(l + r) / 2];//向下取整??
int i = l;
int j = r;
while (i <= j)
{
while (nums[i] < key_num)//查找
i++;
while (nums[j]>key_num)
j--;
if (i <= j)
{//交换元素,增加游标
int temp=nums[i];
nums[i] = nums[j];
nums[j] = temp;
i++;
j--;
}
}
if (j > l)//左半部分继续排序,
quick_sort(nums, l, j);
else return;//递归终止条件,当只有一个元素时则不用排序,因为其本身就是有序的
if (i < r)
quick_sort(nums, i, r);
else return;//递归终止条件
}
int main()
{
int n;
cout << "input nu" << endl;
cin >> n;
int * nums=(int*)malloc(sizeof(int));
for (int i = 0; i < n; i++)
{
int temp;
cin >> temp;
nums[i] = temp;
}
quick_sort(nums, 0, n - 1);
for (int i = 0; i < n; i++)
{
cout << nums[i]<<' ';
}
return 0;
}
阅读全文
0 0
- 自己实现的递归代码
- 自己实现的递归背包算法
- 自己实现的非递归组合
- 系统递归和自己用栈实现递归的比较
- 一个递归和非递归实现二分查找的代码
- 快速排序的非递归实现代码
- 自己实现的简单的Vector代码
- 递归神经网络--代码实现
- 可以自己实现重定位的代码
- ffmpeg用代码实现自己的muxer
- ffmpeg代码实现自己的demuxer
- 自己实现的atof()和atoi()代码
- 自己实现AtomicFloat的示例代码
- ffmpeg用代码实现自己的muxer
- 利用UnityEditor实现自己的代码生成器
- 编写自己的代码生成工具五:代码生成实现
- 快速排序的递归和非递归实现 -----C++、JAVA代码实现
- C#代码行数的计算工具(递归的实现)
- 关于VS2010 error: LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 的解决方法
- 软件工程(C编码实践篇)学习总结
- 朴素贝叶斯应用之语种检测
- 1026. 程序运行时间(15)
- Windows 7平台利用Vmware Workstation 11虚拟机搭建Hadoop 2.7.4基于Ubuntu kylin 14.04集群环境
- 自己实现的递归代码
- Opencv人工神经网络实现字母与数字识别流程
- Linux内核中namespace之PID namespace
- Dclound + vue开发 Hybrid APP注意事项
- Raiden Network雷电网络——以太坊快速、便宜、可扩展的代币传输网络
- sql server 数据库之触发器
- 数位之和
- 阿里云530问题
- OpenCV:Python3使用OpenCV