首页 > 编程语言 >Java实现算法之--选择排序

Java实现算法之--选择排序

时间:2022-11-11 11:35:09浏览次数:46  
标签:Java min -- list 冒泡排序 int 下标 排序


        选择排序也是比较简单的一种排序方法,原理也比较容易理解,它与冒泡排序的比较次数相同,但选择排序的交换次数少于冒泡排序。冒泡排序是在每次比较之后,若比较的两个元素顺序与待排序顺序相反,则要进行交换,而选择排序在每次遍历过程中只记录下来最小的一个元素的下标,待全部比较结束之后,将最小的元素与未排序的那部分序列的最前面一个元素交换,这样就降低了交换的次数,提高了排序效率。


看一下实现代码:


public class ChoiceSort {

public static void _choiceSort(Integer[] a) {
if (a == null || a.length <= 0) {
return;
}
for (int i = 0; i < a.length-1; i++) {//这里为什么-1?思考一下
int min = i; /* 将当前下标定义为最小值下标 */

for (int j = i + 1; j < a.length; j++) {
if (a[min] > a[j]) { /* 如果有小于当前最小值的关键字 */
min = j; /* 将此关键字的下标赋值给min */
}
}
if (i != min) {/* 若min不等于i,说明找到最小值,交换 */
int tmp = a[min];
a[min] = a[i];
a[i] = tmp;
}
}
}
}


编写测试方法:


public static void main(String[] args) {

Integer[] list={49,38,65,97,76,13,27,14,10};

//选择排序
ChoiceSort._choiceSort(list);

for(int i=0;i<list.length;i++){
System.out.print(list[i]+" ");
}
System.out.println();
}


输出结果:


10 13 14 27 38 49 65 76 97


喜欢的朋友关注我!多谢支持!

标签:Java,min,--,list,冒泡排序,int,下标,排序
From: https://blog.51cto.com/u_15866446/5843753

相关文章

  • 20个高级Java面试题汇总
    什么是可变参数?断言的用途?什么时候使用断言?什么是垃圾回收?用一个例子解释垃圾回收?什么时候运行垃圾回收?垃圾回收的最佳做法?什么是初始化数据块?什么是静态初始化器?什么是实例......
  • 页面中插入百度地图(利用百度地图API)
    .aspx代码如下:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="插入地图.aspx.cs"Inherits="插入地图"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Trans......
  • Session和Application实现网络在线聊天室实例
    login.aspx代码如下:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Sample_chat_login.aspx.cs"Inherits="Sample_chart_login"%><!DOCTYPEhtmlPUBLIC"-//......
  • Git使用介绍
    Windows上安装使用Git首先下载Git,下载地址为:​​http://msysgit.github.io/​​ 如下图:点击download,下载后安装即可。运行gitbash如下图:接下来配置一下身份:下面创建一个代......
  • intent跳转时添加动画效果实例
    系统默认的intent跳转效果非常生硬,丑陋,影响用户体验,怎么添加跳转动画呢?首先新建两个动画文件:zoomin.xml:<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="htt......
  • Java集合Map接口与Map.Entry学习
    Map接口不是Collection接口的继承。Map接口用于维护键/值对(key/valuepairs)。该接口描述了从不重复的键到值的映射。(1)添加、删除操作:Objectput(Objectkey......
  • HP-ERS-T200, 冷库制冷设备远程监控物联网解决方案,华普物联,化繁为简 助推物联,HPIOT
    冷库应用现状分析冷库是发展冷链行业的主要基础设施,也是低温条件下储藏货物的建筑群。冷库广泛应用于农产品、医药、化工、冷冻食品、花卉等领域。随着人民生活水平逐渐提......
  • 事件溯源
    PS:原创文章,如需转载,请注明出处,谢谢!   ​ 前几天团队内做了DDD如何有效指导拆分微服务的分享,中间关于微服务集成提到了“事件溯源”,今天就此做下整理。 1、关于事件......
  • 1. linux常用命令
    1.远程连接[email protected]#指定端口号用户名和IP默认端口56:ssh3306:mysql80:http443:https6379:redis 2.查看网卡信息ifconfig......
  • Android--全局获取Context的技巧
    Android中很多地方都会用到Context,弹出Toast的时候需要、启动活动时需要、发送广播的时候也需要、操作数据库的时候需要、使用通知的时候也需要等等等。或许你现在还没有为......