1. 程式人生 > >C語言 選擇排序

C語言 選擇排序

對一般陣列:

#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即可。。。