选择排序原理(java实现)

本文详细介绍了选择排序算法的基本原理及其实现过程。通过一个具体的整型数组排序实例,展示了选择排序如何逐步确定数组中的最小元素,并将其放置在正确位置。同时提供了完整的Java代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

排序是数组中经常用到的功能,这里主要讲选择排序 
  选择排序,就是依次固定每个下标,让每个固定下标的数和后面所有数据进行比较,假定现在有一个整型数组{23,4,56,166,2},对它进行从小到大选择排序 
  先固定下标0,也就是第一个数23,与下标为1,第二个数4进行比较,发现第二个数4比第一个数23小,那么就将23和4进行交换,变为{4,23,56,166,2},接下来还是下标0和下标2进行比较,56比4要大,不进行交换,之后,下标0和下标3进行比较,166比4大,不进行交换,最后,下标0和下标5进行比较,2比4小,进行交换,数组变为{2,23,56,166,4} 
  可以发现,经过这一轮比较,下标0已经是这五个数中最小的数了,接下来还是利用这个原理,固定下标1,与后面的所有的数据进行比较,如果后面的数,小于下标1中的数,那么就交换,大于就继续往下走,需要注意的是,固定的是下标,不是数,也就是说,交换之后,也是用下标1中的数进行比较,经过这一轮比较,数组中第二小的位置就被放到下标1的位置了,即{2,4,56,166,23} 

  接下来按照这个原理,对剩下的三个数进行比较,就可以实现从小到大排序,这就是选择排序,下面是java代码实现

class Demo{ public static void main(String[] args) { //定义要比较的数组 int[] arr = {23,4,56,166,2}; //调用选择排序函数 selectSort(arr); //打印数组,用逗号间隔 for(int i=0;i<arr.length;i++) { if(i!=arr.length-1) System.out.print(arr[i]+","); else System.out.print(arr[i]); } } //选择排序 //结果:无结果 //参数:整型数组 public static void selectSort(int[] arr) { //外层循环控制总共比较的轮数,5个数总共比较4轮(最后一个数不用比较) for(int i=0;i<arr.length-1;i++) { //从下标i+1开始,直到最后一个数,与第一个数进行比较 for(int j=i+1;j<arr.length;j++) { //小于则交换,大于则继续循环 if(arr[j]<arr[i]) { //交换 exchange(arr,j,i); } } } } //交换整型数组中的两个下标中的数 public static void exchange(int[] arr,int i,int j) { int c; c = arr[i]; arr[i] = arr[j]; arr[j] = c; }}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值