剖析选择排序 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    选择排序

    方法一:

    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;

    }

    }

    }

   

   

   

   

最新文章