选择排序
2013-03-20 22:17
253 查看
//选择排序 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; //最大元素的下标假设为i for (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); } }