經常使用算法

一、插入排序java

public class InsertSort {
    public static void insertForm(double[] sorted){
    	int sortedLen =sorted.length; 
    	for(int j=1;j<sortedLen;j++){  //從第二項開始
    		if(sorted[j]<sorted[j-1]){  //先判斷檢查點與上一項的關係,不符合升序,則開始尋找插入點
    			double key =sorted[j];  // 先將檢查點值保存到臨時空間
    			int i=j-1;              
    			while(i>=0 && sorted[i]>key){  // 從右邊向左邊檢查,逐項想右移
    				sorted[i+1]=sorted[i];
    				i--;
    			}
    			sorted[i+1]=key;  // 向右移動結束,找到插入點,就是i+1這個位置
    		}
    	}
    }
    public static void main(String[] args) {
	// TODO Auto-generated method stub
	  double[] nums= new double[]{9,5,10,2,6,7};
	  InsertSort.insertForm(nums);
	  for(int i=0;i<nums.length;i++){
	    System.out.println(nums[i]);
         }
    } 
}
相關文章
相關標籤/搜索