实现效果如图:
1、从小到大排序:
2、从大到小排序:
代码如下:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define N 7 //数组元素个数
void SelectSort(int array[],int Lenth) //选择排序函数
{
int Change;
int temp;
int num_1,num_2;
for(num_1=0 ; num_1<Lenth-1 ; num_1++) //遍历数组第1-5个元素
{
Change=num_1; //将num_1元素下标赋予Change,进行以下与数组下标为num_2进行比较
for(num_2=num_1+1 ; num_2<Lenth ; num_2++) //遍历数组第2-7个元素,并与以上for语句相邻元素进行比较
{
if(array[Change]<array[num_2]) //排序从小或从大可改变">""<"符号进行排序
{
Change=num_2; //若存在,将较小值元素下标赋予Change,进行以下if语句将较小值置换排在数组初始位置
}
}
if(Change!=num_1)
{
temp=array[num_1];
array[num_1]=array[Change];
array[Change]=temp;
}
}
}
void ShowArray(int array[],int Lenth) //显示数组函数
{
int i;
for(i=0;i<Lenth;i++)
{
printf("%d\t",array[i]);
}
}
int main()
{
int array[N]={42,553,13,-3,23,43,32};
printf("Old Array:\n"); //显示旧数组
ShowArray(array,N);
SelectSort(array,N); //选择排序,排序从小或从大可改变第一个if语句">""<"符号进行排序
printf("\nNew Array:\n"); //显示新数组
ShowArray(array,N);
printf("\n");
system("pause");
return 0;
}