/*
功能:数组排序
日期:2013-06-17
*/
#include <stdio.h>
#include <stdlib.h>
void sort(int p[],const int len);
int findMinIndex(int p[],const int len);
int m=0;
int main(void)
{
int Array[7]={23,45,12,89,33,101,67};
int i;
printf("数组的初始状态是:");
for (i=0;i<7;i++)
{
printf("%d ",Array[i]);
}
printf("n排序后数组状态是:");
sort(Array,7);
printf("n");
system("pause");
return 0;
}
/************************************************************************
函数名:findMinIndex
功能:寻找最小元素
参数:int p[] 数组的首地址
const int len 数组长度
返回值:最小元素下标
************************************************************************/
int findMinIndex(int p[],const int len)
{
int i,min,j;
min=p[0];
for (j=0;j<len-m;j++)
{
min = min<p[j]?min:p[j];
}
for (j=0;j<len-m;j++)
{
if(min==p[j])
{
return j;
}
}
}
/************************************************************************
函数名:sort
功能:将数组由大到小输出
参数:p[] 数组的首地址
len 数组长度
返回值:无
************************************************************************/
void sort(int p[],const int len)
{ int i,tmp,j;
for(i = 0;i<len;i++)
{
j = findMinIndex(p,len) ;
tmp = p[len-1-i];
p[len-1-i] = p[j];
p[j] = tmp;
m++;
}
for(i = 0;i<len;i++)
{
printf("%d ",p[i]);
}
}