插入法排序有個例子講的形象,比如玩撲克牌,插入排序可以用打牌時對摸起的牌根據牌的點數來對其進行插入排列來描述。可以把左手中的牌比做已經摸起的牌,即已經被排列好的牌,左手可以容納的牌數的空間可以假想為和要摸的牌的總數相同;而在桌子上的那部分沒摸的牌則是未被排序的牌,這二者的關係可以抽象為陣列中已經被排序好的部分和未被排序好的部分。一開始摸起的第一張牌不需要排序,可以認定其為已排序的牌。然後摸第二張牌的時候,會和手裡面的牌進行比較,如果比一張牌大,那就放在第二張牌位置,如果比第一張牌小,就放到第一張牌前面,然後摸第三張牌,同樣,先和第二張牌進行比較,如果比二張牌大就將第三張牌放到第三牌位置,如果第三張比第二張牌小,就將第三張牌放在第二張牌的位置,第二張牌就放在第三張牌的位置,然後再去和第一張牌比較,如果比第一張牌大就確認放在第二張牌的位置,如果還比第一張牌小就放到第第一張牌的位置,然後本來第一張牌就放在第二張牌的位置,後面的步驟和前面的一樣
具體**如下所示:
#include using namespace std;
void print(int *a, int n)
cout << endl;
}void select_order(int *a, int n)
a[k] = tmp;//元素插入
print(a, n);
} print(a, n);
}void main()
; int n = sizeof(a) / sizeof(*a);
select_order(a, n);
cout << "hello world";
system("pause");
return;
}
執行結果如下圖所示:
插入法排序
static void insertsort int nums 挪位置 for int k i 1 k index k 插入 nums index insert static void main string args console.writeline 排序前的陣列 foreach var n i...
插入法排序
插入法排序較為複雜,其基本工作原理是抽出乙個資料,在前面的資料中尋找相應的位置插入,直到完成排序。以數字9 6 15 4 2為例,採用插入法實現數字按從小到大進行排序,插入法排序過程如圖8.23所示。圖8.23 插入法排序過程示意圖 從圖8.23可以發現,在第一次排序過程中將第乙個數取出來,並放置在...
插入法排序演算法
它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。package com.hikversion.controller.sort public class i...