推免複習之數據結構與算法 直接插入排序

直接插入排序的時間複雜度是O(n^2),是穩定排序,這個算法思路也非常簡單,就和玩撲克牌一樣。

從第二個數開始操作,也就是數組的下標從1開始,與前面的數進行對比,如果比前面的某個元素要小,則數組裏的該元素向後順序挪動一格,索引號減一,否則把數插入上一個索引號的位置。

核心代碼如下:

void InsertSort(vector<int> &Input)
{
	int size = Input.size();
	for (int i = 1; i < size; i++)
	{
		int temp = Input[i];
		int j = i - 1;
		while (j >= 0 && temp < Input[j])
		{
			Input[j+1] = Input[j];
			j--;
		}
		Input[j + 1] = temp;
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章