java数组选择排序

Posted leechence

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java数组选择排序相关的知识,希望对你有一定的参考价值。

 不一样的排序之选择排序。

之前有发过冒泡排序,插入排序,本次我们就来看看选择排序是如何实现的,与前两个排序算法一样,通过嵌套循环实现排序只是中间交换逻辑不一样,插入排序主要从头到尾依次比较然后取比比较值小的数字中最小/最大的那个,然后交换位置,最终实现排序。


    注:红色字体最小/最大,是根据从小到大升序/从大到小降序逻辑定的。




01


动图演示





02



代码实现


public static void main(String[] args) { //排序数组 int[] arr = {5,6,3,1,8,7,2,4}; //最小数字下标 int minIndex = 0; //数组长度 int arrLen = arr.length; //数组长度减1是因为前面数字排序后最后一个为最大值或最小值 for (int i = 0; i < arrLen - 1; i++) { minIndex = i; for (int j = i + 1; j < arrLen; j++) { //比较运算符>是从小到大排序,如果需要从大到小排序则改成< if (arr[minIndex] > arr[j]) { minIndex = j; } } //把最小值替换到最前面 int temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; //排序后 System.out.print("第"+(i+1)+"轮排序后结果:"); for (int item : arr) { System.out.print(item); } System.out.println(""); } //排序后 System.out.print("排序后结果:"); for (int item : arr) { System.out.print(item); }}
执行结果:

第1轮排序后结果:16358724

第2轮排序后结果:12358764

第3轮排序后结果:12358764

第4轮排序后结果:12348765

第5轮排序后结果:12345768

第6轮排序后结果:12345678

第7轮排序后结果:12345678

排序后结果:12345678







以上是关于java数组选择排序的主要内容,如果未能解决你的问题,请参考以下文章

JAVA基础-数组的排序(选择排序和冒泡排序),总结精辟!!!

java基础3-重载+命令行传参+递归+数组+排序

java实现几种常用排序:选择排序

Java和Python分别实现直接选择排序

在第6731次释放指针后双重免费或损坏

冒泡排序与选择排序(经典版)----java基础总结