基礎演算法複習之四 插入排序

2021-08-25 02:44:07 字數 514 閱讀 6843

插入排序的基本思想是遍歷每乙個元素,當遍歷到第n個元素是,前面n-1個元素是排序好的,此時在前面選擇合適的位置,將第n個元素插入,是穩定排序,時間複雜度是o(n^2);

#include#include#include#includeusing namespace std;

//插入排序

void insertsort(vector&nums, int low, int high)

int pos = j;//表示待插入元素要插入的位置;

int temp = nums[i];//儲存當前待插入元素;

while (j < i)//這裡是將比當前待插入元素值大的元素往後移,注意移動方向一定是從後往前,否則會被覆蓋;

nums[pos] = temp;//將帶插入元素插入到相應的位置; }}

int main()

; insertsort(nums,0,nums.size());

return 0;

}

演算法複習 插入排序

原理都很清楚 讓看起來很簡單,但是實現的時候,也需要思考一些細節。二分法的插入排序關鍵在於插入位置的下標。void insertsort int arr,int n insert arr i to index t int tmp arr i for int j i j t j arr t tmp 其...

複習 排序之插入排序

插入排序是穩定的排序演算法。插入排序有點類似與抓撲克牌,比如在玩鬥地主,你在玩手機,然後將牌背面朝上乙個乙個的疊起來,抓完牌,手機放下了,這時就要一張一張的往手上遞牌,然後會以第一張為基準,然後大於第一張就插左邊,小於就插右邊,插排也是這樣的。遍歷陣列list,讓基數為list i 然後如果找到比這...

演算法基礎之排序 插入排序

排序演算法是演算法基礎中最常見也是最應該掌握的演算法。插入排序的想法,和我們玩撲克牌起牌相似。從左手為空開始,撲克牌背面朝上至於桌上,每次從桌面上摸一張牌,並將其插入到左手正確的位置,使得左手中的牌是有序的。為了找到這張牌的正確插入位置,從右到左逐一比較左手中的牌。當摸完桌上的牌時,左手中的牌就是排...