选择排序
选择排序(SelectSort)选择排序是所有排序中最简单的排序算法之一,同时也是要求我们必须掌握的排序算法之一。
时间复杂度
选择排序的时间复杂度为(n2)
算法步骤
1.在未排序的序列中找到最小或者最大的元素,存放到排序序列的起始位置
2.再从余下的元素中继续找到最小或者最大的元素,放到以及排序好的序列末尾
3.重复第二步,知道所有的元素排序完成
算法图解
实现代码
package pra;
import java.util.Arrays;
/**
* @author: Mercury
* Date: 2022/3/12
* Time: 11:09
* Description:选择排序
* Version:1.0
*/
public class SelectSort {
public static void main(String[] args) {
int[] arrays = new int[]{1,2,3,2,5,6,2,3,7,23};
System.out.println("未进行排序的数组序列:"+Arrays.toString(arrays));
selectSort(arrays);
System.out.println("进行选择排序后的数组序列:"+Arrays.toString(arrays));
}
public static void selectSort(int[] arrays){
//外层循环控制的是需要比较的轮数
for (int i = 0; i < arrays.length-1; i++) {
//定义默认最小元素下标
int min = i;
//将默认最小元素与未排序的元素依次比较,
//当默认元素比未排序的元素大的时候,更新默认最小元素的小标
//每执行一次循环,都能找到一个当前未排序序列中最小小苏
for (int j = i+1; j < arrays.length; j++) {
if(arrays[min] > arrays[j]){
min = j;//更新默认最小元素下标
}
}
//若默认最小元素下标发生变化,则交换俩个元素
//若默认最小元素下标未发生变化,则不需要进行交换
if(min != i){
arrays[min] ^= arrays[i];
arrays[i] ^= arrays[min];
arrays[min] ^= arrays[i];
}
}
}
}
代码实现效果
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116598.html