一.排序方法
- 被排列的数组data[0...n],选定当前位置i=0作为最小值下标position;在data[i+1...n]区间每个元素与data[position]比较,记录新position,最后交换data[i]和data[position]。这样最小的元素就到了当前位置了。
- 当前位置i+1,重复1...
二.动画演示
http://student.zjzk.cn/course_ware/data_structure/web/flashhtml/zhijiexuanze.htm
三.Java代码
- public static int[] selectSort(int[] data) {
- int temp = 0;
- int position = 0;
- int j = 0;
- for (int i = 0; i < data.length - 1; i++) { //i当前位置
- position = i; //position最小下标
- j = i + 1;
- for (; j < data.length; j++) { //j从此区间选取最小下标
- if (data[j] < data[position]) {
- position = j;
- }
- }
- if (position != i) {
- temp = data[i];
- data[i] = data[position];
- data[position] = temp;
- }
- }
- return data;
- }
四.时间复杂度和稳定性
- 最好时间复杂度
- 若文件的初始状态是正序的,所需的关键字比较次数C和记录移动次数M。
- Cmin=n(n-1)/2=0(n2)
- Mmin=0
- 直接选择排序最好的时间复杂度为O(n2)
- 最坏时间复杂度
- 若初始文件是反序的,所需的关键字比较次数C和记录移动次数M。
- Cmax=n(n-1)/2=O(n2)
- Mmax=3(n-1)=O(n)
- 直接选择排序的最坏时间复杂度为O(n2)
- 平均时间复杂度
- O(n2)
- 直接选择排序是就地排序,它是不稳定的。反例[2,2,1] 。
相关推荐
51单片机控制的循迹避障小车,支持红外遥控,可以实现前进后退左右和循迹切换
智能小车的相关功能例程,并且有程序的注释,
ZY-Player-Setup-2.6.4.exe
ZY3-01星SC产品命名规范20160217.pdf
该套设备采用ZY6400-23.5/45型液压支架,最大采高达4.5 m。由于十二矿井下主要巷道断面较小,支架必须解体入井安装,回采结束后支架回撤又面临一个新课题。针对这个难题,十二矿改革回收工艺,采取相应的安全措施,顺利地...
ZY-TP21便捷式打印机驱动是一款嵌入式微型打印机,这款打印机体积小,重量轻,噪音低,易集成,操作简单,可靠性强,这里介绍的正是针对这款打印机的驱动,ZY-TP21便捷式打印机驱动,有需要的朋友们快来下载吧。...
RF-SJ-ZY-04-F03 结构专业图纸审查标准及要点.zip
不用换找资源,本身自带资源搜索的播放器
循迹小车的单片机程序。仅供参考大家互相学习,共同进步本次上传日志本次上传日志本次上传日志本次上传日志要求上传您自己觉得好的资料本次上传日志
RF-SJ-ZY-04-F03 结构专业图纸审查标准及要点(1).zip
ZY-Player-Setup-2.6.1.exe
RF-GC-ZY-04-F03 管道打压验收标准.zip
zy-player PC端
RF-GC-ZY-04-F01 房屋验收记录单.zip
ZY-Player清醒脱俗的一款播放器,无广告,速度快。
程序设计语言ZY1906-大作业.7z
RF-SJ-ZY-04-F08 采暖通风设计图纸审查标准及要点(1).zip
ZY5600-16-34型液压支架掩护梁有限元分析及其优化设计,蒲志新,邓全刚,以ZY5600-16-34型液压支架为研究对象,利用Pro/E软件对其液压支架进行三维建模,然后利用ANSYS软件对液压支架的强度进行有限元分析,并�