When you are familiar with C, write a play, as a note to use it:
#include <stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#defineMAX 8voidPrint_r (int*arr,intlen);Static voidUsagevoid) {printf ("- s selection sort\n" "- b show unsorted status\n" "- m Merge sort\n" "- I. Insertion sort\n" "- I. information\n" "-H Help and exit\n"); return;}Static voidUsage_info (void) {printf ("This is a test program for the sorting algorithm \ n" "currently includes select Sort, insert sort and merge sort \ n"); return;}int* Create_arr (int*arr) {Srand (Time (NULL)); inti; for(i=0; i<max;i++) {Arr[i]=rand ()% -; } returnarr;}voidInsertion_sort (intarr[]) { inttemp =0, j =0, i =0; for(j =1; j<max;j++) {i= J1; Temp=Arr[j]; while(I >=0&& Arr[i] <temp) {Arr[i+1] =Arr[i]; I--; } arr[i+1] =temp; }}voidSelection_sort (intArr[],intLen) { inti,j=0, Index,key; for(i=0; I < len;i++) {Key=Arr[i]; Index=i; J= i+1; while(J <Len) { if(Arr[j] <key) {Key=Arr[j]; Index=J; } J++; } Arr[index]=Arr[i]; Arr[i]=key; } }/** * Start array begin subscript * Mid array split subscript * End Array End subscript*/voidMergeintArr[],intStartintMidintend) { intszie_l,szie_r,i,j,k; Szie_l= mid+1-start;//left array sizeSzie_r = End-mid;//Right Array size intArr_l[szie_l],arr_r[szie_r]; for(i =0; I < szie_l;i++) {Arr_l[i]= arr[start+i]; } for(j =0; J < szie_r;j++) {Arr_r[j]= arr[mid+j+1]; } I=0; J=0; for(k = start;k <= end;k++) { if((I < szie_l) && (J <Szie_r)) { if(Arr_l[i] <=Arr_r[j]) {Arr[k]=Arr_l[i]; I++; } Else if(Arr_l[i] >Arr_r[j]) {Arr[k]=Arr_r[j]; J++; } } Else if(J >=Szie_r) {Arr[k]=Arr_l[i]; I++; } Else{Arr[k]=Arr_r[j]; J++; } }}/** Start array starts subscript * End Array End subscript*/voidMerge_sort (intArr[],intStartintend) { intMid//The subscript used to split the array if(Start <end) {Mid= (int) ((start+end)/2); Merge_sort (Arr,start,mid); Merge_sort (Arr,mid+1, end); Merge (Arr,start,mid,end); }}voidPrint_r (int*arr,intLen) { inti; for(i=0; i<len;i++) {printf ("[%d]=>%d\n", I,arr[i]); }}voidMainintARGC,Char**argv) { intI,c,sorted=0; intArr[max]; Create_arr (arr); if(argc>1) { while(-1! = (c = getopt (ARGC,ARGV,"Hsimib"))) { Switch(c) { Case 'b': printf ("before sorting: \ n"); Print_r (Arr,max); printf ("=========================================\n"); Break; Case 'h': Usage (); Break; Case 's': Selection_sort (Arr,max); printf ("selection sorting: \ n"); Sorted=1; Break; Case 'I': Insertion_sort (arr); printf ("insertion sorting: \ n"); Sorted=1; Break; Case 'm': Merge_sort (arr,0, max-1); printf ("merge sorting: \ n"); Sorted=1; Break; Case 'I': Usage_info (); Break; default: Usage (); Break; } } if(sorted) {Print_r (Arr,max); } } Else{usage (); Exit (0); }}
Common sort algorithm set-C implementation