choose sort

来源:互联网 发布:worldclim气候数据 编辑:程序博客网 时间:2024/05/10 07:55
/*******************************************************************************                * @version               $v1.0$* @date                  $6.9.2012$* @author                $Alfred$* @brief                 two versions of choose sort include non-recursion                         and recursion*******************************************************************************/#include <stdio.h>#include <stdlib.h>#define NUM 10typedef enum chooseVersion {non_recursion, recursion} chooseVersion;int main(void){int a[NUM] = {12,23,7,0,123,7,0,9,34,-1};int i;chooseVersion chooseID;void chooseSort( int *arr, int num,chooseVersion ID);printf("pls choose version(0 is non-recursion or 1 is recursion)\n");scanf("%d",&chooseID);chooseSort( a, sizeof(a)/sizeof(a[0]),chooseID);for(i = 0; i < NUM; i++){printf("%d ",a[i]);}}void chooseSort( int *arr, int num, chooseVersion ID){int i,j, index,temp;if(ID == non_recursion){for( i = 0; i < num-1; i++){index = i;for( j = i+1; j < num; j++){if(arr[j] < arr[index]){index = j;}}if( index != i){temp = arr[i];arr[i] =arr[index];arr[index] = temp;}}printf("non_recursion is called\n");}else{if(num == 1) return;else{index = num - 1;for( i = 0; i < num-1; i++){if(arr[index] < arr[i])index = i;}if( index != num - 1){temp = arr[num -1];arr[num - 1] = arr[index];arr[index] = temp;}chooseSort(arr, num - 1, ID);}}}

原创粉丝点击