#include <iostream> using namespace std; #include <tchar.h> #include <time.h> /* 选择排序:左边为有序序列,右边为无序序列 初始化为左边为0个有序数,右边为num个无序数 每执行一趟将无序数中选一个最小(最大)的数,与无序数的首个数进行交换,有序数+1,无序数-1 执行num-1趟完成 */ //选择排序 void SelectSort(int target[],int num) { //执行num-1趟排序 for (int i = 0; i < num-1; i++) { //记录最值数 int temp = i; for(int j = i+1; j < num; j++) { if(target[temp] > target[j]) { //将标记目前最小的数 temp = j; } } //将最小的数与无序数中的首个数进行交换 int t = 0; t = target[temp], target[temp] = target[i]; target[i] = t; } } //产生随机数 int Randssd(int cap=0, int floor=100) //指定上下限 { int temp=-1; if (floor>=cap) { temp = ( rand()%(floor-cap) ) + cap; } else { cout << _T("输出有误"); } return temp; } int main() { //设置随机种子 //不设置的话总是第一次的数字 srand(time(NULL)); int iarray[100]; for (int i=0;i<100;i++) { iarray[i] = Randssd(0,100); } for (i=0;i<100;i++) { cout << iarray[i] << " "; } SelectSort(iarray,100); cout << "/n/n"; for (i=0;i<100;i++) { cout << iarray[i] << " "; } return 0; }