选择排序

来源:互联网 发布:数据库视图和表的区别 编辑:程序博客网 时间:2024/05/17 01:56
//选择排序package com.SelectSort;public class SelectSort {public static void main(String[] args){int[] array = new int[]{15,27,34,12,15,22,48,1};outPut(array);selectAscending(array);selectDscending(array);}/** * 输出数组 * @param array */public static void outPut(int[] array){for (int i = 0; i < array.length; ++i){System.out.print(array[i] + " ");}System.out.println();}/** * 选择升序排序 * @param array */public static void selectAscending(int[] array){for (int i = 0; i < array.length - 1; ++i){int smallest = i;  //最小元素的下标假设为i//在其余数组中便利最小的值for (int j = i + 1; j < array.length; ++j){   //当某数的大小小于原先假定的数组下标表示的最小值是,改变最小下标if (array[j] < array[smallest]){smallest = j;}//原来假定的数组下标之后发生了改变if (smallest != i){int temp;temp = array[i];array[i] = array[smallest];array[smallest] = temp;}}}System.out.println("选择升序排序为");outPut(array);}/** *选择降序排序 * @param array */public static void selectDscending(int[] array){for (int i = 0; i < array.length - 1; ++i){int biggest = i;  //最大元素的下标假设为ifor (int j = i + 1; j < array.length; ++j){if (array[j] > array[biggest]){biggest = j;}if (biggest != i){int temp;temp = array[i];array[i] = array[biggest];array[biggest] = temp;}}}System.out.println("选择降序排序为");outPut(array);}}



原创粉丝点击