- 博客(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
289
原创 快速排序算法的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
177
原创 希尔排序算法的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
173
原创 堆排序算法的C++实现
1. 对第i个父节点进行堆排序,条件:当前父节点下面层的所有非叶子节点都已完成堆排序 前情知识:使用数列表示树,对于第i个数, 它的根节点为 parent = (i-1)/2,取整 两个子节点分别为 2i+1 和 2i+2 template<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
158
原创 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
1239
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅