直接插入演算法:
有乙個已經有序的資料序列,要求在這個已經排好的資料序列中插入乙個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法——插入排序演算法,插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的、個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為o(n^2)。是穩定的排序方法。插入演算法把要排序的數陣列分成兩部分:第一部分包含了這個陣列的所有元素,但將最後乙個元素除外,而第二部分就只包含這乙個元素。在第一部分排序後,再把這個最後元素插入到此刻已是有序的第一部分裡的位置。
實現://插入排序演算法 for迴圈實現,i的值會一直迴圈到0,不好得到i的中間的值,比如應該插入到第二個,這個值不好取,所以可以用交換來做,內迴圈有冒泡的部分,由於i 1、第乙個為最小,第二個和第乙個比,如果小,那麼把第乙個向右移,第二個放在第乙個的位置,依次迴圈,第三個,先和第二個比,如果小,移動,然後再和第乙個比。
for (int j = 0; j < array.length; j++ )}//
//用while實現,把前面大的依次往後移動,然後把值插進去。
int i = j;
while(i>0 && temp < array[i-1])
array[i] = temp;
}
直接插入排序演算法
撲克牌是我們幾乎每個人都可能從事過的遊戲。而最基本的撲克玩法都是一邊摸牌,一邊理牌。假如我們拿到了這樣一手牌,如圖9 5 1。啊,似乎是同花順呀,別急,我們得理一理順序才知道是否是真的同花順。請問,如果是你,應該如何理牌呢?應該說,哪怕你是第一次玩撲克牌,只要認識這些數字,理牌的方法都是不用教的。將...
直接插入排序演算法
每次將乙個待排序的記錄按其關鍵字的大小插到前面已經排序的序列中的適當位置,直到全部記錄插入完畢為止。第一趟比較前兩個數,然後把第二個數按大小插入到有序表中 第二趟把第三個資料與前兩個數從後向前掃瞄,把第三個數按大小插入到有序表中 依次進行下去,進行了 n 1 趟掃瞄以後就完成了整個排序過程。將待插入...
演算法 直接插入排序
一 總體思想 將乙個記錄直接插入到乙個已經排序好的列表中的對應位置,形成乙個新的列表。直接插入排序為穩定排序。二 排序過程 公升序 1 認為第乙個記錄為有序列表。2 從第二個記錄開始,依次和已經排序的列表中記錄做比較,如果被比較記錄大於該記錄,則將被比較記錄後移一位,否則將該記錄插入到不大於它的記錄...