算法导论-插入排序

《算法导论》P10 _2.1插入排序

算法用容器实现,在C++中,能用容器尽量不用数组。原因在于容器不用手动分配和释放内存,并且是可增长的,同时算法库和本身的迭代器使其使用起来非常方便。

#include<iostream>
#include<vector>

using namespace std;

int num;
vector<int> Num;

void Set_Num(){
	while (cin >> num){
		Num.push_back(num);
	}
}

void Sort_Num(){
	int key;
	for (int n = 1; n < Num.size(); ++n){
		key = Num[n];
		int m = n - 1;
		while (m>-1 && Num[m] > key){
			Num[m + 1] = Num[m];
			m = m - 1;
		}
		Num[m + 1] = key;
	}
}

void Show_Num(){
	for (auto number : Num)
		cout << number << " ";
}


int main(){
	Set_Num();
	Sort_Num();
	Show_Num();

	return 0;
}

需要注意的是,《算法导论》全书均为伪代码,且其数组都是以1为数组首元素,实现的时候应当注意这一点。

你可能感兴趣的:(实现,插入排序,算法导论,容器,伪代码)