java實現排序演算法之直接插入排序
阿新 • • 發佈:2019-02-12
直接插入排序思想
將待排序陣列看成兩部分,一部分為已排好序,一部分為待排序,初始時已排序部分只有第一個元素。每次需將帶排序部分的第一個元素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; } } } } }