1. 程式人生 > >java實現排序演算法之直接插入排序

java實現排序演算法之直接插入排序

直接插入排序思想

將待排序陣列看成兩部分,一部分為已排好序,一部分為待排序,初始時已排序部分只有第一個元素。

每次需將帶排序部分的第一個元素A(將該元素儲存在臨時變數中)與已排序的元素由後往前一一比較,如果元素A小於比較的元素B,則元素B後移一位,如果碰到元素A小於元素B則將元素A插入元素B之後,並停止往前查詢的迴圈,然後取未排序部分的下一個元素一次與已排好序的元素進行比較。

基本思想其實就是從未排序的陣列中依次取出元素,插入到已經排好序的陣列中的過程。

演算法實現:

//1,23,32,4,7
public class Test  {
	public static void main(String[] args) {
		double[] m ={1,32,23,4,7,2,2,5,5,7,8};
		insertSort(m);
		for(double n:m){
			System.out.print(n+",");
		}
	}
	public static void insertSort(double[] m){
		double temp=0;
		for(int i=1;i<m.length;i++){
			temp = m[i];
			for(int j=i;j>=1;j--){
				if(temp<m[j-1]){
					m[j]=m[j-1];
				}else{
					m[j]=temp;
					break;
				}
			}
		}
	}
}