插入排序、和打撲克牌,抓牌的過程是一樣的。
大致就是這麼個意思,圖畫的不好,請擔待。圖上描述的是插入的過程,那麼他怎麼知道,乙個乙個的和前面的作比較,比前邊的數字小就交換,一直交換到正確的位置。
package從上訴**看出,他和冒泡很像,冒泡是從前往後比較交換,他好像是反過來的樣子,確實是這樣的,但是插入排序卻比冒泡效率要高的很多。你細品,再品。冒泡每乙個都要作比較而插入排序好像不是呦。插入排序只要找到位置了,那就一定是正確的,但是冒泡只有在完成所有迴圈之後才會是正確的位置!bubbling;
/*** 插入排序
* *
@author
zy 劉會發
* @version
1.0 *
@since
2020/4/9 */
public
class
insert ;
for (int i = 1; i < a.length; i++) }}
print(a);
}/*** 交換**
@param
a 要交換位置的陣列
* @param
i 要交換的位置(正確的位置)
* @param
j 最小值所在的位置
*/static
void exchange(int a, int i, int
j)
static
void print(int
a) }
public
static
void
main(string args)
}
三 插入排序
我們打牌的時候,拿到的牌經常是需要進行排序操作的,一般是一張一張的來,將每一張牌插入到其他有序的牌中的適當位置。基於這種思想,就有了插入演算法 通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。將第一待排序序列第乙個元素看做乙個有序序列,把第二個元素到最後乙個元素當成...
排序演算法(三)插入排序
今天來更新排序演算法中的第三種演算法 插入排序插入排序是基於比較的排序。所謂的基於比較,就是通過比較陣列中的元素,看誰大誰小,根據結果來調整元素的位置 因此,對於這類排序,就有兩種基本的操作 比較操作 交換操作其中,對於交換操作,可以優化成移動操作,即不直接進行兩個元素的交換,還是用乙個樞軸元素 t...
排序演算法(三) 插入排序
一 直接插入排序 最差時間複雜度 o n 2 最優時間複雜度 o n 平均時間複雜度 o n 2 穩定性 穩定 直接插入排序 insertion sort 是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對未排序的資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序演算法的一般...