现在的位置: 首页 > 综合 > 正文

选择排序

2018年02月11日 ⁄ 综合 ⁄ 共 568字 ⁄ 字号 评论关闭

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。

#include "stdafx.h"
#include <iostream>
#include <vector>

using namespace std;

void Show(vector<int> values)
{
	for (auto value : values)
		cout << value << " ";
	cout << endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
	vector<int> values = { 9, 1, 9, 8, 2, 3, 5, 7, 6, 4 };
	Show(values);
	cout << endl;

	for (int i = 0; i < values.size() - 1; ++i)
	{
		int iTmp = values.at(i);
		int iIndex = i;

		for (int j = i + 1; j < values.size(); ++j)
		{
			if (iTmp > values.at(j))
			{
				iIndex = j;
				iTmp = values.at(j);
			}
		}

		// 表示在未排序的数列中找到了最小的数,交换之
		if (iIndex != i)
		{ 
			swap(values.at(i), values.at(iIndex));
			Show(values);
		}
			
	}

	system("pause");
	return 0;
}

抱歉!评论已关闭.