由于最近在总结排序算法,写在博客上以备以后忘了可以有资料可看,如有不足,还望广大好友
指出或提出宝贵意见,欣然接受。
2014年11月17日
/*
* 直接选择排序
*/
#include <iostream>
using namespace std;
#define Size 6
typedef int DataType;
//声明
void SelectSort(DataType digit[]);
void PaintSelectSort(DataType digit[]);
//Main
int main(void)
{
DataType digit[Size] = {64, 5, 7, 89, 6, 24};
PaintSelectSort(digit);
SelectSort(digit);
PaintSelectSort(digit);
return 0;
}
void SelectSort(DataType digit[])
{
cout<<"After SelectSort..."<<endl;
DataType temp;
int i;
int j;
int k;
for(i = 0; i < Size-1; i++)
{ // 选择排序:从第一个数开始,用一个临时变量存起来
k = i;
for(j = i+1; j < Size; j++) // 遍历“之后”的元素,找出最小值,
if(digit[k] > digit[j]) k = j;
if(k != i) // 判断是不是本身,如果不是本身就进行交换
{
temp = digit[k];
digit[k] = digit[i];
digit[i] = temp;
}
}
}
void PaintSelectSort(DataType digit[])
{
int i;
for(i = 0; i < Size; i++)
cout<<'\t'<<digit[i];
cout<<endl;
}