【Data_Structure笔记5】排序算法之【选择类排序】

/************************************************************************************************************************
文件说明:
        选择类排序
		   【1】简单选择排序
		   【2】堆排序
选择排序的思想:
           【1】选择排序的基本思想是:每一趟(例如第i趟)在后面n-i+1个待排序列元素中选取关键字最小的元素,作为有序子序列的第
		        i个元素,直到第n-1趟做完
		   【2】选择排序中的堆排序是重点算法
*************************************************************************************************************************/
#include<iostream>
using namespace std;

/************************************************************************************************************************
模块说明:
        简单选择排序
基本思想:
        假设待排序表为L[1....n],第i趟排序即从L[i....n]z中选择关键字最小的元素与L(i)交换,每一趟排序可以确定一个元素的最终
	位置,这样经过n-1趟排序,就可以是的整个排序表有序。
*************************************************************************************************************************/
template<typename ElemType>static void SelectSort(ElemType arrayT[],int iLength)
{
	int iMin = 0;
	int iTemp= 0;

	for(int i=0;i<(iLength-1);i++)
	{
		iMin = i;
		for(int j=i+1;j<iLength;j++)
		{
			if(arrayT[j]<arrayT[iMin])
			{
				iMin = j;
			}
		}//for j
		if(iMin!=i)
		{
			iTemp        = arrayT[i];
			arrayT[i]    = arrayT[iMin];
			arrayT[iMin] = iTemp;
		}
	}//for i
}
/************************************************************************************************************************
模块说明:
        控制台应用程序的入口点
*************************************************************************************************************************/
int main(int argc,char* argv[])
{

	int arrayT[15] = {22,32,44,34,56,21,24,345,213,234,245,127,113,119,933};
	SelectSort<int>(arrayT,15);
	for(int i=0;i<15;i++)
	{
		std::cout<<arrayT[i]<<std::endl;
	}

	std::system("pause");
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值