LowB三人组--选择排序原理和实现

简介: LowB三人组--选择排序原理和实现


原理

public static void main(String[] args) {
        int[] arr = {100,34,29,39,20,79,56};
        selectionSort(arr);
    }
    public static void selectionSort(int[] arr) {
        //原理: 每次找到无序最小的,然后将最小的和本次无序的首位交换位置
        //外层为找的次数,内层为比较和交换次数,内层:开始索引为i+1,
        //外层循环; 找到的次数
        for (int i = 0; i < arr.length - 1; i++) {
            int minIndex = i;
            //内存循环: 无序列表中第一个数和其他的数进行比较 进行比较,找到最小的一个的索引,并和第一个数交换位置
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[minIndex] > arr[j]) {
                    minIndex = j;
                }
            }
            int tmp = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex] = tmp;
            System.out.println(Arrays.toString(arr));
        }
    }

运行结果:


相关文章
|
3月前
|
搜索推荐 C语言
排序算法--冒泡排序
排序算法--冒泡排序
28 0
|
7月前
|
搜索推荐
排序算法---希尔排序---详解&&代码
排序算法---希尔排序---详解&&代码
|
8月前
|
算法 前端开发 搜索推荐
前端算法之选择排序
前端算法之选择排序
47 0
|
8月前
|
算法
lowB三人组---冒泡排序原理和实现
lowB三人组---冒泡排序原理和实现
|
8月前
|
Java
LowB三人组--插入排序原理和java实现
LowB三人组--插入排序原理和java实现
|
8月前
选择排序(多方式)
选择排序(多方式)
初学算法之---递归的插入排序
初学算法之---递归的插入排序
|
算法
算法初识---选择排序
一、算法内容 选择排序的内容比较简单,大体上说就是,先确定一个数字为最小,然后从他后面的数中来寻找是否有比他更小的数,如果有便将两者交换,这个过程完成后,第一个数字就以及被排好序,第一个数字为最小的,然后将第二个数字定为最小,再从它的后面找是否有比它小的,如果有,便和它交换,从而排好第二个数位,以此类推直到将最后一个数排好。
83 0
|
算法 搜索推荐
算法初识---冒泡排序
冒泡排序同选择排序一样是一种排序算法,它的主要方法是对比相邻两个数的大小,如果前边得数比后面的数的,则他们交换,否则比较接下来相邻的两个数,第一轮比较到最后会确定最后一个数的位置,即最后一个数是最大,每进行一轮就会排好一个数,直到把所有的数都排好。
69 0
|
算法
算法初识---插入排序
插入排序将要排序的元素分成两组,已排序的和未排序的。每次将未排序的元素和已排序的元素依次比较,发现已排序序列中元素比待排序元素大则交换他俩的位置。若已排序的元素均比待排序的元素小,不做任何操作,因为算上待排序元素,新的序列仍然有序,进行下一个待排序元素的插入。直到所有元素都都插入到已排序元素中,全部元素排序完毕。
84 0