怎样用选择法对十个数进行排序
//前面的不知道for (i=1;i<=10;i++) scanf("%d",&data[i]));
for(i=1;i<=9;i++) {
post=i;
for(j=i+1;j<=10;j++)
if(data[j]<data[post])post=j;
if(post!=i){
t=data[i];data[i]=data[post];data[post]=t;
}
}
//后面的也不知道
程序代码:// ConsoleProgramTest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <time.h>
#include <stdlib.h>
#define NUMBER 1000
/*
* 打印数组
*/
void print(int *array, int size)
{
for (int i = 0;i < size;i++)
{
printf_s("%5d", *(array + i));
}
printf_s("\n");
}
/*
* 使用随机数初始化数组
*/
void InitArray(int *array, int size)
{
srand(time(0));
for (int i = 0;i < size;i++)
{
*(array + i) = rand() % NUMBER;
}
}
void ChooseMaxNSort(int *array, const int maxNum, const int size)
{
for (int i = 0;i < maxNum;i++)
for (int j = i + 1;j < size;j++)
{
if (*(array + i) < *(array + j))
{
int tmpValue = *(array + i);
*(array + i) = *(array + j);
*(array + j) = tmpValue;
}
}
}
/*
* 主函数
*/
int _tmain(int argc, _TCHAR* argv[])
{
const int size = 20;
int ans[size] = { 0 };
InitArray(ans, sizeof(ans) / sizeof(int));
printf_s("排序前:\n");
print(ans, sizeof(ans) / sizeof(int));
// 选择排序
ChooseMaxNSort(ans, 10, size);
printf_s("排序前:\n");
print(ans, sizeof(ans) / sizeof(int));
return 0;
}
