八大排序算法之选择排序

来源:互联网 发布:2015淘宝双十一销售额 编辑:程序博客网 时间:2024/05/21 19:30
/** * Created by leixingbang on 2017/9/25. * 选择排序主要思想是将数组拆分为两部分,一部分是已经排序的新数组和剩下的尚未排序的子数组 * 每次选择,都从尚未排序的子数组中找出最小的数字,添加到已经排序的新数组分。 * **************************定理*************** * 对于长度为n的选择排序需要 * (1)N*N/2次比较:(N-1,N-2,N-3.....1)累加求和 * (2)N次交换:每次从尚未排序的子数组中找到最小的,进行交换。 */public class MySelectSort2 {    public static int []selectSort(int []arr) {        for (int i = 0; i < arr.length; i++) {//从0到i是已经排序的子数组部分            int smallest = arr[i];            int smallestIndex = i;            for (int j = i + 1; j < arr.length; j++) {//从i+1到arr.length是尚未排序的子数组部分                if (arr[j] < smallest) {                    smallest = arr[j];                    smallestIndex = j;                }            }            int temp = arr[i];            arr[i] = smallest;            arr[smallestIndex] = temp;        }        return arr;    }    public static void main(String a[]) {        int[] arr1 = {10, 34, 2, 56, 7, 67, 88, 42};        int[] arr2 = selectSort(arr1);        for (int i : arr2) {            System.out.print(i);            System.out.print(", ");        }    }}

原创粉丝点击