选择排序

ⅰ亾dé卋堺 提交于 2020-03-25 09:05:06

 

问题描述:

通过选择排序,从小到大排序一个数组。

 

算法实现:

public static void selectSort(int[] arr) {    for(int i = 0; i < arr.length - 1; i++) {        int min = arr[i];        int minIndex = i;        for(int j = i + 1; j < arr.length; j++) {            if(arr[j] < min) {                min = arr[j];                minIndex = j;            }        }        if(min < arr[i]) {            int temp = arr[i];            arr[i] = min;            arr[minIndex] = temp;        }    }}

 

算法解析:

1.从未排序数组的第一个元素开始,假设当前值为最小值;

2.在假设最小值元素的下一个元素开始遍历,直到数组末尾,看是否有更小的值,如果有则交换;

3.上一个步骤结束后,数组中会增加一个有序的元素,继续未排序数组的设置比较过程(重复步骤1、2);

4.遍历、比较、交换结束,数组有序。

 

 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!