手写选择排序--Java

Posted 1994jinnan

tags:

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

/**
 *选择排序
 *  逻辑是这样的:
 *      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的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序和选择排序的Java实现

堆排序及手写堆的基本操作java代码

手写冒泡排序和选择排序算法

Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序

Java八股文面试题 基础篇 -- 二分查找算法冒泡排序选择排序插入排序希尔排序快速排序

面试官:手写一个选择排序并对其改进