随笔分类 -  排序算法

摘要:性能分析: 时间复杂度:O(n*log(n)) 空间复杂度:O(log(n)) 这里的时间复杂度其实是快速排序最好的时间复杂度,最坏的时间复杂度是O(n^2) 代码里补充的随机化快速排序的期望时间复杂度为:O(n*log(n)) 快速排序的性能优于归并排序是因为常数项,即算法所需的固定时间量。 #i 阅读全文
posted @ 2020-11-25 18:20 不妨不妨,来日方长 阅读(339) 评论(0) 推荐(0) 编辑
摘要:性能分析: 时间复杂度:O(n^2) 空间复杂度:O(1) 虽然性能跟冒泡排序一样,但是速度上来讲,选择排序要优于冒泡排序,因为减少了数据交换的次数,先找到了最小值的下标,然后将它往前挪。 #include<iostream> #include<vector> using namespace std 阅读全文
posted @ 2020-11-25 11:28 不妨不妨,来日方长 阅读(264) 评论(0) 推荐(0) 编辑
摘要:性能分析: 时间复杂度:O(n^2) 空间复杂度:O(1) #include<iostream> #include<vector> using namespace std; int main() { // 思想: // 在原始待排序序列上操作; // 将原始待排序序列分成无序区和有序区两部分; // 阅读全文
posted @ 2020-11-25 10:59 不妨不妨,来日方长 阅读(214) 评论(0) 推荐(0) 编辑
摘要:性能分析: 时间复杂度:O(n*log(n)) 空间复杂度:O(n) 归并排序算法来自于分而治之思想,“归”是“递归”的意思,“并”是"合并“的意思,就是说将复杂的数组排序问题先进性分解,然后递归的解决小问题,最后合并问题的解。 #include<iostream> #include<vector> 阅读全文
posted @ 2020-11-24 19:44 不妨不妨,来日方长 阅读(279) 评论(0) 推荐(0) 编辑
摘要:性能分析: 时间复杂度:O(n^2) 空间复杂度:O(1) 但是综合来讲,要比冒泡排序和选择排序好一些。 #include<iostream> #include<vector> using namespace std; int main() { // 首先找出待排序列中最小的数,然后用这个数和原序列 阅读全文
posted @ 2020-11-24 16:37 不妨不妨,来日方长 阅读(221) 评论(0) 推荐(0) 编辑
摘要:一.sort函数 1.sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序方法可以实现对数据的排序,但是sort函数是如何实现的,我们不用考虑! 2.sort函数的模板有三个参数: void sort (RandomAccessIterator fir 阅读全文
posted @ 2020-11-24 10:13 不妨不妨,来日方长 阅读(1060) 评论(0) 推荐(0) 编辑