对一般数组:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void selectSort01(int arr[],int len)
{
for(int i = 0;i < len;i++)
{
int min = i;
for(int j = i+1;j < len;j++)
{
if(arr[min]>arr[j])
{
min = j;
}
}
if(min != i)
{
int temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
}
void printArray01(int arr[],int len)
{
for(int i = 0;i < len;i++)
printf("%d\n",arr[i]);
}
//选择排序 实现数组从小到大排序
void test01()
{
int arr[5]={1,2,3,4,5};
int len = sizeof(arr)/sizeof(int);
selectSort01(arr,len);
printArray01(arr,len);
}
对指针数组:
void selectArray02(char **pArr,int len)
{
for(int i = 0;i < len;i++)
{
int max =i;
for(int j = i+1;j < len;j++)
{
//if(pArr[max]>pArr[j])
if(strcmp(pArr[max],pArr[j]) < 0) //第一个字符串比第二个小
{
max = j;
}
}
if(max != i)
{
char * temp = pArr[max];
pArr[max] =pArr[i];
pArr[i] = temp;
}
}
}
void printArray02(char *arr[],int len)
{
for(int i = 0;i < len;i++)
printf("%s\n",arr[i]);
}
//选择排序 对指针数组进行从大到小排序
void test02()
{
char* pArr[]={"aaa","bbb","ccc","ddd","eee","fff"};
int len = sizeof(pArr)/sizeof(char*);
selectArray02(pArr,len);
printArray02(pArr,len);
}
在主函数中调用函数test01或test02即可。。。