代码如下:
#includeusing namespace std; //直接插入排序 void InsertSort(int *a,int len){ int i,j,tmp; for(i=1;i =0;j--){ if(tmpa[j+1]) { a[j]=a[j+1]; a[j+1]=tmp; } } } } //选择排序 void Select(int *a,int len){ int i, j; int min; for(i=0;i =0;i--) heapify(arr,i,len-1); for(i=len-1;i>0;i--){ swap(&arr[0],&arr[i]); heapify(arr,0,i-1); } } //基数排序 int findmax(int *arr,int len){ int max=arr[0]; for(int i=1;i max) max=arr[i]; } return max; } void RadixSort(int *arr,int base,int len){ int i; int result[len]; int bucket[10]={0}; for(i=0;i =0;i--){ int exp=(arr[i]/base)%10; result[bucket[exp]-1]=arr[i]; bucket[exp]--; } memcpy(arr,result,len*sizeof(int)); } void Radix(int *arr,int len){ int max=findmax(arr,len); int base; for(base=1;max/base>0;base*=10){ RadixSort(arr,base,len); } } int main(){ int arr[10]={1,2,3333,43,55,68,777,888,9,11}; // int arr[10]={278,109,063,930,589,184,505,069,008,083 }; int arr1[5]={10,11,12,13,14}; // cout<<&arr[0]< 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)