
排序——选择排序:选择排序、双向选择排序、堆排序
发布日期:2021-05-14 16:39:10
浏览次数:13
分类:精选文章
本文共 2916 字,大约阅读时间需要 9 分钟。
������������������
���������������������������������������������������������������������������������������������������������������
������������������O(n��)
������������������O(1)
���������������������
/** * ������������������---��������������������������������� * ������������������O(n��) * ������������������O(1) * ��������������������� * @param array */ public static void selectSort(int[] array){ for(int i = 0;i < array.length-1;i++){ int maxIndex = 0; for(int j = 1 ; j < array.length - i; j++){ if(array[j] > array[maxIndex]{ maxIndex = j; } } int temp = array[maxIndex]; array[maxIndex] = array[array.length-i-1]; array[array.length-i-1] = temp; } } /** * ������������������---��������������������������������� * ������������������O(n��) * ������������������O(1) * ��������������������� * @param array */ public static void selectSort1(int[] array) { for(int i = 0;i efficacy������ment
���������������������������������������������������
���������������
���������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������������������������������������������������������������������������
������������������O(n log n)
������������������O(1)
���������������������
/** * ������������������O(n log n) * n log n + n * (1+log(n)) * * ������������������O(1) * ��������������������� * @param array */ public static void heapSort(int[] array){ //1.������������ createBigHeap(array); //2.���������������������������array.length-1��� for(int i = 0;i < array.length-1;i++){ swap(array,0, array.length-i-1); adjustdown(array, array.length-i-1, 0); } public static void adjustdown(int[] array,int size,int index){ while (2 * index + 1 < size){ int maxchildindex = 2 * index + 1; if(maxchildindex >= size){ break; } if(array[maxchildindex + 1] > array[maxchildindex]){ maxchildindex++; } if(array[index] >= array[maxchildindex]){ break; } swap(array,index, maxchildindex); index = maxchildindex; } } public static void createBigHeap(int[] array){ for(int i = (array.length-1)/2; i >=0; i--){ adjustdown(array, array.length, i); } } public static void swap(int[] array,int l,int r){ int tmp = array[l]; array[l] = array[r]; array[r] = tmp; }
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年05月03日 00时31分26秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
JavaSE总结
2021-05-09
手动造轮子——基于.NetCore的RPC框架DotNetCoreRpc
2021-05-09
Python IO编程
2021-05-09
CSS入门总结
2021-05-09
使用 TortoiseGit 时,报 Access denied 错误
2021-05-09
基于 HTML5 WebGL 的污水处理厂泵站自控系统
2021-05-09
django-表单之模型表单渲染(六)
2021-05-09
c++之程序流程控制
2021-05-09
spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
2021-05-09
有道云笔记 同步到我的博客园
2021-05-09
李笑来必读书籍整理
2021-05-09
Hadoop(十六)之使用Combiner优化MapReduce
2021-05-09
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
2021-05-09
CoreCLR源码探索(八) JIT的工作原理(详解篇)
2021-05-09
IOS开发Swift笔记16-错误处理
2021-05-10
flume使用中的一些常见错误解决办法 (地址已经使用)
2021-05-10
andriod 开发错误记录
2021-05-10
C语言编译错误列表
2021-05-10
看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
2021-05-10