首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

排序算法 - 抉择排序

2013-08-13 
排序算法 -- 选择排序选择排序从序列的第一位开始,找到最小(大)值,把该值与第一位上的值交换,接着从第二个

排序算法 -- 选择排序

选择排序
从序列的第一位开始,找到最小(大)值,把该值与第一位上的值交换,接着从第二个位置开始重复此动作。

?

效率不高,容易实现。

?

/** * SelectionSort.java *  * @author   xieyan * @date     2013/06/20 * @version  1.0 */package sort;/** * SelectionSort.java */public class SelectionSort {/* * 选择排序 * 从序列的第一位开始,找到最小(大)值,把该值与第一位上的值交换,接着从第二个位置开始重复此动作。 *  * 效率不高,容易实现 *//** * selectionSortAsc *  * <PRE> * 升序 * </PRE> *  * @param arr */public static int[] selectionSortAsc(int[] arr) {int min = 0;int minLocal = 0;for(int i = 0; i < arr.length; i++) {min = arr[i];minLocal = i;for(int j = i + 1; j < arr.length; j++) {if(min > arr[j]) {min = arr[j];minLocal = j;}}arr[minLocal] = arr[i];arr[i] = min;}return arr;}/** * selectionSortDesc *  * <PRE> * 降序 * </PRE> *  * @param arr */public static int[] selectionSortDesc(int[] arr) {int min = 0;int minLocal = 0;for(int i = 0; i < arr.length; i++) {min = arr[i];minLocal = i;for(int j = i + 1; j < arr.length; j++) {if(min < arr[j]) {min = arr[j];minLocal = j;}}arr[minLocal] = arr[i];arr[i] = min;}return arr;}public static void main(String[] args) {int[] a = new int[] { 5, 7, 8, 3, 4, 2, 9, 1, 6 };int[] b = selectionSortAsc(a);for (int i = 0; i < b.length; i++) {System.out.println(b[i]);}b = selectionSortDesc(a);for (int i = 0; i <  b.length; i++) {System.out.println(b[i]);}}}

?

热点排行