![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
mingogo乔
这个作者很懒,什么都没留下…
展开
-
十大排序算法对比和C++实现
十大排序算法复杂度对比和C++实现一、性能对比二、基本的排序算法实现1. 插入排序2. 选择排序3. 冒泡排序三、高效的排序算法实现1. 希尔排序2. 堆排序3. 快速排序4. 归并排序5. 基数排序6. 计数排序一、性能对比算法平均时间复杂度最好情况最坏情况稳定性优点缺点插入排序O(n2)O(n^2)O(n2)O(n)O(n)O(n)O(n2)O(n^2)O(n2)稳定比较次数少;适用于基本有序的数列交换次数多,插入成本大选择排序O(n2)O(n^2)原创 2021-09-12 17:23:55 · 184 阅读 · 0 评论 -
快速排序算法的C++实现
template<class T>void swap(T data[], int a, int b){ T temp = data[a]; data[a] = data[b]; data[b] = temp;}void quicksort(T data[], int first, int last){ int lower = first+1, upper = last;//双指针 //选择中间的数字放在第一个作为bound swap(data,first,(first+la原创 2021-05-29 19:06:27 · 119 阅读 · 0 评论 -
希尔排序算法的C++实现
前情知识:增量序列的构建:h(i) = 3h(i-1) +1第k个子序列中第i个位置,对应总数列中第i*h+(k-1)template<class T>void ShellSort(T data[], int size){ // 构建子序列间的间隔序列h(增量) int H[]; for(int h = 1,i=0; h < size; i++){ H[i] = h; h = 3*h+1; } for(i--;i>=0;i--){ h = H[i]原创 2021-05-29 17:24:05 · 102 阅读 · 0 评论 -
堆排序算法的C++实现
1. 对第i个父节点进行堆排序,条件:当前父节点下面层的所有非叶子节点都已完成堆排序前情知识:使用数列表示树,对于第i个数,它的根节点为 parent = (i-1)/2,取整两个子节点分别为 2i+1 和 2i+2template<class T>void swap(T data[], int a, int b){ T temp = data[a]; data[a] = data[b]; data[b] = temp;}void heapify(T data[], int原创 2021-05-28 22:45:16 · 80 阅读 · 0 评论 -
C++函数返回空的vector
return vector<string>();\\C++11return {};转载 2021-05-27 20:04:58 · 4658 阅读 · 2 评论