理论原理:
代码实现:
#include <iostream>
#include <windows.h>
#include <time.h>
using namespace std;
#define MAX 100000;
void Swap(double &a,double &b);
//选择排序
void Select_Sort(double *arr,int length)
{
for(int i=0;i<length;i++)
{
int min=i;
for(int j=i+1;j<length;j++)
{
if(arr[min]>arr[j])
{
min=j;
}
}
if(min!=i)
{
Swap(arr[min],arr[i]);
}
}
}
void Swap(double &a,double &b)
{
double temp=a;
a=b;
b=temp;
}
void printArr(double *arr,int length)
{
for(int i=0;i<length;i++)
{
cout<<arr[i];
}
cout<<endl;
}
int main()
{
int max=MAX;
srand(time(NULL));
double arr[max];
for(int i=0;i<max;i++)
{
arr[i]=rand()%max;
}
//获取系统时间
DWORD time_start,time_end;
time_start=GetTickCount();
Select_Sort(arr,max);
time_end=GetTickCount();
cout<<"选择排序"<<max<<"个数所需时间为"<<(time_end-time_start)<<endl;
return 0;
}
运行结果: