基础算法总结
2022/1/12 20:05:42
本文主要是介绍基础算法总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
快速排序
18:12:57 2022-01-12
快排属于分治算法,分治算法都有三步:
1. 分成子问题
2. 递归处理子问题
3. 子问题合并
#include<iostream> #include<algorithm> #include<cmath> #include<math.h> using namespace std; int a[1000010],n; void qsort(int i, int j) { int l = i, r = j, mid = a[(i + j) / 2]; do { //分成子问题 while (a[l] < mid) l++; while (a[r] > mid) r--; if (l <= r) { swap(a[l], a[r]); l++, r--; } } while (l <= r); if (l < j) qsort(l, j); //递归处理子问题 if (i < r) qsort(i, r); //递归的终止 } int main() { cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; qsort(1, n); for (int i = 1; i <= n; i++) cout << a[i] << " "; return 0; }View Code
这篇关于基础算法总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南