Java基础--选择排序
2024-08-30 02:00:57
每一趟从待排序的数据元素中选出最小(或最大的)一个元素,
顺序放在已排好的序的数列的最后,直到全部待排序的数据元素排完。
选择排序是不稳定的排序方法。
选择排序的时间复杂度为 O(n^2)。
第一次需要检查n个元素,但随后检查的元素数依次为n - 1, n – 2, …, 2和1。平均每次检查的元素数为1/2 * n, 因此运行时间为 n * 1/2 * n,简单地写作 O(n^2)。
例:
34,4,56,17,90,65
4,34,56,17,90,65 第一轮 5次
4,17,56,34,90,65 第二轮 4次
4,17,34,56,90,65 第三轮 3次
4,17,34,56,65,90 第四轮 2次
4,17,34,56,65,90 第五轮 1次
代码如下:
ppublic static void main(String[] args) {
int[] num = {34,4,56,17,90,65};
int minIndex = 0;//用于记录每次比较的最小值下标
//控制轮数
for(int i =0;i<num.length-1;i++) {
minIndex =i; //每轮假设一个最小值下标
for(int j =i+1;j<num.length;j++) {
if(num[minIndex]>num[j]) {
minIndex=j;
}
}
//判断需要交换的数下标是否为自己
if(minIndex!=i) {
num[minIndex]=num[minIndex]+num[i];
num[i]=num[minIndex]-num[i];
num[minIndex]=num[minIndex]-num[i];
}
}
//输出结果
for(int x:num)
System.out.println(x); }
最新文章
- 最新GHOST XP系统下载旗舰增强版 V2016年
- iOS国际化
- 批量改名工具 Bulk Rename Utility
- java 25 - 3 网络编程之 Socket套接字
- SQL Server里因丢失索引造成的死锁
- Ext.Net学习笔记24:在ASP.NET MVC中使用Ext.Net
- Nmap备忘单:从探索到漏洞利用(Part 5)
- 代码-Weka的NaiveBayes类
- C++如何入门
- javaScript 设计模式系列之四:组合模式
- FFT [TPLY]
- HttpServletRequest 接口、HttpServletResponse 接口、请求转发与重定向
- DBA_TABLES ALL_TABLES USER_TABLES
- 微信支付errcode:40163,code been used,错误小结
- Windows Service 2012 R2 下如何建立ftp服务器
- 201771010134杨其菊《面向对象程序设计java》第八周学习总结
- ORA-01031: insufficient privileges 错误解决
- JavaScript学习(六)
- win7 配置DNS
- bzoj5293: [Bjoi2018]求和
热门文章
- day05-装饰器作业
- java.lang.NoSuchMethodError: org.springframework.util.Assert.notNull(Ljava/lang/Object;Ljava/util/function/Supplier;)V
- 老版本loadrunner 打开侧边栏
- mysql中in和exist的区别
- jQuery包装
- Java IO: InputStreamReader和OutputStreamWriter
- highcharts 柱状图在柱子顶部显示y轴数据
- java内部类基础知识
- CAD安装未完成,某些产品无法安装的解决方法
- Mybatis-Plus的分页插件