Java实现初级排序算法之——选择排序算法

算法原理:

选择排序算法是最简单的排序算法:首先找到数组总最小的元素,然后将它和数组的第一个元素交换位置(如果第一个元素是最小的元素那就和自己交换位置),然后再剩下的元素中找到最小的元素,做上述操作,直到将整个数组重新拍寻为止。

算法特点:

  •  运行时间和输入无关
  • 数据移动最少

算法实现:

package com.example;

/**
 * 
 * @Description : 用选择算法对数组排序
 * @ClassName   : SelectionSort
 * @author      : RelaxOne
 * @date        : 2018年8月18日 下午3:46:23
 */
public class SelectionSort {	

	/**
	 * @Description:  对一个数组进行升序排列
	 * @author : RelaxOne
	 * @date   : 2018年8月18日
	 * @param arr
	 * @return arr
	 */
	public static Double[] sort_up(Double[] arr) {
		for(int i=0;i<arr.length;i++) {
			int k = i;
			for(int j=i;j<arr.length;j++) {
				if(arr[k] > arr[j])
					k = j;
			}
			double temp = arr[k];
			arr[k] = arr[i];
			arr[i] =  temp;
		}
		
		return arr;
	}
	
	/**
	 * @Description: 对一个数组进行降序排列
	 * @author : RelaxOne
	 * @date   : 2018年8月18日
	 * @param arr
	 * @return arr
	 */
	public static Double[] sort_down(Double[] arr) {
		for(int i=0;i<arr.length;i++) {
			int k = i;
			for(int j=i;j<arr.length;j++) {
				if(arr[k] <arr[j]) {
					 k = j;
				}
			}
			double temp = arr[k];
			arr[k] = arr[i];
			arr[i] = temp;
		}
		return arr;
	}
}

测试代码:

package com.example;

public class Test {
	public static void main(String[] args) {
		Double[] arr = new Double[] {1.2,-4.2,2.5,3.8,1.9};
		arr = SelectionSort.sort_down(arr);
		printArray(arr);
	}
	
	public static void printArray(Double[] arr) {
		for(int i=0;i<arr.length;i++) {
			System.out.print(arr[i] + " ");
		}
	}
	
}

运行结果:

java 用选择排序算法对数组排序(降序)

猜你喜欢

转载自blog.csdn.net/liu548zhou/article/details/81747805
今日推荐