用c++实现选择排序从小到大:
#include "stdafx.h"
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
int a[30];
for (int i=0; i<10;i++)
{
a[i] = rand()%300;
cout<<"a["<<i<<"]="<<a[i]<<endl;
}
int minNum = 0; //做标记最小值并初始化
for(int i=0;i<10;i++)
{
/*if (a[i]< a[minNum])
{
minNum = i;
}*/
for (int j=i;j<10;j++)
{
if (a[j] <a[minNum])
{
minNum = j;
}
}
//调换位置
if (minNum == i)//实现选择排序
{
}
else
{
//交换值
int temp = a[minNum];
a[minNum] = a[i];
a[i] = temp;
}
for (int i=0; i<10;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}
system("pause");
return 0;
}
输出结果:
a[0]=41
a[1]=167
a[2]=34
a[3]=100
a[4]=269
a[5]=124
a[6]=78
a[7]=258
a[8]=262
a[9]=164
34 167 41 100 269 124 78 258 262 164
34 41 167 100 269 124 78 258 262 164
34 41 78 100 269 124 167 258 262 164
34 41 78 100 269 124 167 258 262 164
34 41 78 269 100 124 167 258 262 164
34 41 78 269 100 124 167 258 262 164
34 41 78 269 100 167 124 258 262 164
34 41 78 269 100 167 124 164 262 258
34 41 78 269 100 167 124 164 258 262
34 41 78 269 100 167 124 164 258 262