/************************************************************************************************************************
文件说明:
选择类排序
【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;
}
【Data_Structure笔记5】排序算法之【选择类排序】
最新推荐文章于 2024-08-21 19:57:32 发布