算法導論第二章 2.1

算法導論第二章

2.1 插入排序

1-1

  1. 首先,31是作爲已經拿到左手上的牌
  2. j = 2,即我們開始再桌面上摸牌41,且我們左手最多有A.length = n張牌
  3. key獲取當前牌的數據
  4. while語句開始循環,並和左手已經排好序的牌做對比,如果當前牌大於 前面的牌,則前面的牌往後移動一位,如果小於前面的牌或是前面沒有牌了,則退出循環
  5. 將當前的牌插入左手牌中
  6. 依次在for循環中迭代5次後,排序完成

1-2

INSERTION-SORT(A)	// 用非升序排序重寫
1   for j = 2 to A.length
2	key = A[j];
3	// 將A[j]插入已排序的序列A[1...j - 1];
4	i = j - 1;
5	while i > 0 and key > A[i]
6	    A[i + 1] = A[i]
7	    i  = i - 1;
8	A[i + 1] = key

1-3

FIND-SORT(A, u)
1   for i = 1 to A.length    // 在代碼中元素數量n用A.length代替
2	if u == A[i]
3	    return A[i]
4   return NIL

1-4

ADD(A, B)
1   C = [0...0](C.length = A.length + 1)
2   for i = A.length downto 0
3	sum = A[i] + B[i]
4	if sum == 2 or sum + C[i + 1] == 2
5	    C[i] = C[i] + 1
6	else
7	    C[i + 1] = sum
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章