选择排序
方法一:
void Select_Sort(int *a,int n)
{
//int n=strlen(a);
int i,j;
int max,temp;
for(i=0;i { max = i; for(j=i;j { if(a[max] < a[j]) max = j; } temp = a[i]; a[i] = a[max]; a[max] = temp; } } 方法二:逐步细化的方法 void print(int a[], int n,int i) { printf("%d趟:",i); for(int j=0;j printf("%4d",a[j]); printf("\n"); } int min(int a[],int n, int i) { int key=i; for(int k=i+1;k { if(a[k] { key = k; } } return key; } void Select_Sort(int a[],int n) { int key,temp; for(int i=0;i { key = min(a,n,i); temp = a[key]; a[key] = a[i]; a[i] = temp; } } 选择排序算法---二元选择排序 void SelectSort2(int a[],int n) { int i,j,min,max,temp; for(i=0;i<=n/2;i++) { max = i; min = i; for(j=i+1;j<=n-i-1;j++) { if(a[j]>a[max]) { max = j; } if(a[j] { min = j; } } if(max!=n-i-1) { temp=a[n-i-1]; a[n-i-1]=a[max]; a[max]=temp; } if(min!=i) { temp=a[i]; a[i]=a[min]; a[min]=temp; } } }