选择排序 堆排序
来源:互联网 发布:世界域名 编辑:程序博客网 时间:2024/04/29 06:04
选择排序算法有简单选择排序,堆排序算法,堆排序是对简单选择排序的改进
今天动手实现了一下简单选择排序算法
假设数组是从下标0开始的。
void Sift(vector<int> & nums, int i, int end){// i 要调整的结点位置, end 待调整序列结束位置int j = 2 * i + 1;while (j <= end) {//这里很巧妙,j指向两个孩子中的较大者if (j < end && nums[j] < nums[j + 1]) ++j;if (nums[i] < nums[j]){std::swap(nums[i], nums[j]);}// 上面只交换了i,j,另一个孩子没有动,说明它还是堆结构,所以这里接着调整ji = j; j = 2 * j + 1;}}void heapSort(vector<int> &v){// 初始建堆for (int i = v.size() / 2; i >= 0; --i)Sift(v, i, v.size() - 1);// 调整堆for (int i = v.size() - 1; i > 0; --i){swap(v[0], v[i]);Sift(v, 0, i - 1);}}
0 0
- 选择排序--堆排序
- 选择排序:堆排序
- 选择排序-堆排序
- 选择排序-【堆排序】
- 【选择排序】堆排序
- 选择排序 堆排序
- 选择排序-堆排序
- 选择排序---堆排序
- 选择排序&&堆排序
- 选择排序&堆排序
- 排序-->选择排序(选择排序&&堆排序)
- 排序 - [选择排序 - 堆排序]
- 选择排序:直接选择排序 堆排序
- 选择排序:直接选择排序,堆排序
- 选择类排序:选择排序,堆排序
- 选择排序---简单选择排序 堆排序
- 选择排序(直接选择排序,堆排序)
- 选择排序:简单选择排序、堆排序
- python 字符串内建函数
- 全选,反选,删除
- 如何通过cPanel附加域来设置多个网站
- 面试之路(27)-链表中倒数第K个结点
- Codeforces Round #299 (Div. 2) C. Tavas and Karafs
- 选择排序 堆排序
- VLC for android Windows平台上基于 Eclipse的开发
- Matconvnet学习笔记
- Android中跨进程通信方式之使用文件共享
- ubuntu 下firefox安装中文包
- Modbus Technical Resources
- 【discuzx2】forum_index.php文件的分析
- 第十周第十一周项目2(3)
- 【NBUToj】1667 - Hkhv Loves Sequences(模拟,严格递增子串)