實(shí)現(xiàn)直接插入排序的方法類
package com.hcc.util;
/**
* 直接插入排序
* @author hcc
*
*/
public class DirectInsertSort {
/**
* 從小到大排序
* @param arr
* @param length
*/
public static void sortingMinToMax(int[] arr,int length) {
for(int i = 1;i < length;i++){
int j;
int temp = arr[i];
for(j=i-1;j >=0 && arr[j] > temp;j--) {
arr[j+1] = arr[j];
}
//因?yàn)樯厦嫜h(huán)中是j-- 所以現(xiàn)在的j為-1 所以要加1
arr[j+1] = temp;
}
}
/**
* 從大到小排序
* @param arr
* @param length
*/
public static void sortingMaxToMin(int[] arr,int length) {
for(int i=1;i < length;i++) {
int temp = arr[i];
int j;
for(j = i-1;j >= 0 && arr[j] < temp;j--) {
arr[j+1] = arr[j];
}
arr[j+1] = temp;
}
}
}
測(cè)試類
public class Test {
public static void main(String[] args) {
int[] arr = {69,65,70,90,37,92,6,28,54,20};
System.out.println("原始數(shù)據(jù):");
printSortData(arr);
System.out.println();
System.out.println("直接插入排序:");
directInsertSortTest(arr);
}
/**
* 直接插入排序測(cè)試方法
* @param arr
*/
public static void directInsertSortTest(int[] arr) {
DirectInsertSort.sortingMinToMax(arr, arr.length);
printSortData(arr);
}
/**
* 打印輸出方法
* @param arr
*/
public static void printSortData(int [] arr) {
int arrLength = arr.length;
for(int i = 0;i < arrLength;i++) {
System.out.print(arr[i]+" ");
}
}
}