Java实现初级排序算法之——插入排序算法

算法原理:

遍历整个数组,对原数组中的每个元素插入到新的数组中,首先找到合适的位置,其次将后面的元素都向后移动一位,最后将元素插入到数组中。直到原数组中的所有元素都插入完成。

算法实现:

package com.example;

/**
 * 
 * @Description : 用插入排序算法进行排列一个数组 
 * @ClassName   : InsertionSort
 * @author      : RelaxOne
 * @date        : 2018年8月18日 下午4:06:53
 */
public class InsertionSort {
	
	/**
	 * 
	 * @Description: 将一个数组用插入排序算法进行升序排列 
	 * @author : RelaxOne
	 * @date   : 2018年8月18日
	 * @param arr
	 * @return arr
	 */
	public static Double[] sort_up(Double[] arr){
		for(int i=1;i<arr.length;i++) {
			for(int j=0;j<i;j++) {
				double temp = arr[i];
				if( arr[j] >= arr[i]) {
					for(int k=i;k>j;k--) {
						arr[k] = arr[k-1];
					}
					arr[j] = temp;
				}
			}
		}
		
		return arr;
	}
	
	/**
	 * 
	 * @Description: 将一个数组用插入排序算法进行降序排列 
	 * @author : RelaxOne
	 * @date   : 2018年8月18日
	 * @param arr
	 * @return  arr
	 */
	public static Double[] sort_down(Double[] arr){
		for(int i=1;i<arr.length;i++) {
			for(int j=0;j<i;j++) {
				double temp = arr[i];
				if( arr[j] <= arr[i]) {
					for(int k=i;k>j;k--) {
						arr[k] = arr[k-1];
					}
					arr[j] = 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 = InsertionSort.sort_up(arr);
		printArray(arr);
	}
	
	public static void printArray(Double[] arr) {
		for(int i=0;i<arr.length;i++) {
			System.out.print(arr[i] + " ");
		}
	}
	
}

运行结果:

猜你喜欢

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