实现直接插入排序的方法类
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];
}
//因为上面循环中是j-- 所以现在的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;
}
}
}
测试类
public class Test {
public static void main(String[] args) {
int[] arr = {69,65,70,90,37,92,6,28,54,20};
System.out.println("原始数据:");
printSortData(arr);
System.out.println();
System.out.println("直接插入排序:");
directInsertSortTest(arr);
}
/**
* 直接插入排序测试方法
* @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]+" ");
}
}
}