/**
*选择排序
* 逻辑是这样的:
* 1. 先定义变量,用于记录某个值的索引,默认为最小值,从每次遍历的值开始拿
* 2. 第二层循环i+1开始,从默认最小值索引后面开始遍历,判断新的值是否小于最小值。
* 如果新的值小于最小值,将新的值的索引和最小值的索引进行替换,直到遍历结束。
* 3. 第二层for循环结束,最小值索引已经发生了改变,然后将值进行替换。
* 替换完毕后,然后就拿着这个新的最小值开始了下次的循环,直到所有遍历结束。
*/
public static void main(String[] args) {
int[] arr = {5, 1, 18, 2, 45, 31, -8};
int k = 0; // 定义变量,用于记录某个值的索引,默认为最小值
for (int i = 0; i < arr.length; i++) {
k = i;
for (int j = i+1; j < arr.length; j++) {
//从默认最小值索引后面开始遍历,判断新的值是否小于最小值,
//如果新的值小于最小值,将新的值的索引和最小值的索引进行替换,直到遍历结束。
if(arr[j] < arr[k]){
k = j;
}
}
//遍历结束后,最小值索引已经发生了改变,然后将值进行替换
int temp = arr[i];//定义临时遍历,进行替换。
arr[i] = arr[k];//将新的最小值放到前面。
arr[k] = temp;//将前面的值交给最小值。
// 然后就拿着这个新的最小值开始了下次的循环,直到所有遍历结束。
}
System.out.println(Arrays.toString(arr));
}
手写选择排序--Java
Posted 1994jinnan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手写选择排序--Java相关的知识,希望对你有一定的参考价值。
以上是关于手写选择排序--Java的主要内容,如果未能解决你的问题,请参考以下文章
Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序