递归与分治法实现快速排序算法,输入一串以英文字符逗号隔开的数字,按升序排列法实现快速排序算法,提交实验报告。
要求:
1、以word形式提交实验报告,其中运行结果包含3个测试用例。
2、源码project名称,或类名,或代码注释等形式,体现个人信息,如姓名和学号。
3、word命名:班级+学号+姓名+算法分析第2章实验报告
关于#算法#的问题:递归与分治法实现快速排序算法,输入一串以英文字符逗号隔开的数字,按升序排列法实现快速排序算法,提交实验报告(语言-c++)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 #include<iostream> using namespace std; void quickSort(int a[], int, int);//原型声明 int main() { int array[100] = {0}, k, i = 0, len = 0; char c; do { scanf("%d", &array[i]); i++, len++; c = getchar(); } while (c != '\n'); cout << "The orginal arrayare:" << endl; for ( k = 0; k<len; k++) cout << array[k] << " "; cout << endl; quickSort(array, 0, len - 1); cout << "The sorted arrayare:" << endl; for (k = 0; k<len; k++) cout << array[k] << " ";//打印数组 cout << endl; system("pause"); return 0; } void quickSort(int s[], int l, int r) { if (l< r) { int i = l, j = r, x = s[l]; while (i < j) { while (i < j && s[j] >= x) // 从右向左找第一个小于x的数 j--; if (i < j) s[i++] = s[j]; while (i < j && s[i]< x) // 从左向右找第一个大于等于x的数 i++; if (i < j) s[j--] = s[i]; } s[i] = x; quickSort(s, l, i - 1); // 递归调用 quickSort(s, i + 1, r); } }
有帮助点个采纳
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 对于知识的学以致用的解释
- ¥50 三种调度算法报错 有实例
- ¥15 关于#python#的问题,请各位专家解答!
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败