- 博客(7)
- 收藏
- 关注
原创 十大排序算法对比和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 170
原创 快速排序算法的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 114
原创 希尔排序算法的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 95
原创 堆排序算法的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 76
原创 VScode的C++文件编译(windows篇)
Vscode学院笔记:VScode的C++文件编译(windows篇)基于g++命令单文件多文件基于cmake配置json原视频链接:https://www.bilibili.com/video/BV13K411M78v/?p=2&spm_id_from=pageDriver基于g++命令单文件可以自动生成配置文件launch.json自动生成不包含调试信息的可执行文件g++ .\main.cpp.\a.exe生成包含调试信息的可执行文件g++ -g .\main.cpp
2021-05-08 23:28:58 1084 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人