package cn.插入排序_2015_10_30;
/** 2015.10.30 8:50 插入排序測試
*/public class insertsort
for(int i=1;iint j = i-1; //找到當前索引的前乙個索引
int temp = intarray[i]; //將當前索引的值儲存到乙個臨時變數中去
while(j>=0 && temp < intarray[j])
/** 迴圈結束後,就找到要插入的位置,別管是j>=0 不滿足,還是temp > intarray[j]
* 不滿足,要插入的位置就是j+1,因為是intarray[j]元素不滿足了,那麼就是插入到後面
* ,將j+1後面的元素,都依次向後移動一位
*/int k=i-1; //i,下標,對應的值是被插入的元素
while(k>j)
//最後,j+1元素的位置,就空出來了,將temp值,覆蓋過去
intarray[j+1] = temp;
}for(int i=0;isystem.out.print(intarray[i]+" ");
}system.out.println();
}總結:
大概思路:將資料分為兩部分,一部分有序,一部分無序;
採用後向插入原則,將無序部分的第乙個元素,插入到有序部分,從後往前依次比較;
主要分為三個步驟吧:
第一:用乙個while迴圈先找到要插入位置的下標 ,如j+1
第二:再用乙個while迴圈,將陣列下標範圍在[j+1,i=1] 之間的元素,依次往後移動乙個位置,這樣的話,下標為j+1的位置,就空出來了
第三:將i+1位置的值覆蓋到j+1位置上,
這樣就將無序部分的第乙個資料插入到前面有序部分了;
再來乙個for迴圈,即可;
後來,看了別人的**,主要區別在於,一邊找,一邊移動;**比較簡潔;
剛開始,最好自己在紙上把流程寫出來,這樣的話,可能更好的理解for迴圈,while迴圈,if等等吧;才能創造不同,然後再向別人學習,看看別人的**;不要背**;
插值查詢 插值搜尋
這是一種和二分比較相似的查詢的演算法,不過不同的是,對於分布比較均勻的較大的陣列,插值查詢有時能夠一次就搜尋到位.為什麼能夠這麼快呢 看網上沒有什麼關於這種演算法的描述,我就來描述一下吧.首先要知道一點,這種搜尋方式只能夠針對順序表進行,再乙個要理解順序表中的乙個特點,在順序表中查詢是否存在乙個值,...
Matlab資料插值 內插 外插
插值就是已知一組離散的資料點集,在集合內部某兩個點之間 函式值的方法。一 一維插值 插值運算是根據資料的分布規律,找到乙個函式表示式可以連線已知的各點,並用此函式表示式 兩點之間任意位置上的函式值。插值運算在訊號處理和影象處理領域應用十分廣泛。1 一維插值函式的使用 若已知的資料集是平面上的一組離散...
Matlab資料插值 內插 外插
matlab資料插值 內插 外插 插值就是已知一組離散的資料點集,在集合內部某兩個點之間 函式值的方法。一 一維插值 插值運算是根據資料的分布規律,找到乙個函式表示式可以連線已知的各點,並用此函式表示式 兩點之間任意位置上的函式值。插值運算在訊號處理和影象處理領域應用十分廣泛。1 一維插值函式的使用...