复杂度:O(n2)

基本思想:每一趟在n-i+1 (i=1,2,...,n-1)个记录中选取关键字最小的记录作为有序序列中的第i个记录。 

 #include <stdio.h>

int SelectMinKey(int *a,int ibound)
{
    int min= a[ibound];
    for(int i=ibound+1;i<sizeof(a)/sizeof(a[0]);i++)
    {
        if(min>a[i])
            min=a[i];
    }
    return min;
}

void SelectSort(int *a, int size)
{
    int tempi;
    for(int i=1;i<size;i++)
    {
        int j = SelectMinKey(a,i);
        if(i!=j)
        {
            tempi = a[i];
            a[i]=a[j];
            a[j]=tempi;
        }
    }
}
//输出内容
void print_content(int *a, int size)
{
    for(int i=0;i<size;i++)
    {
        printf("%d\t",a[i]);
    }
    printf("\n");
}
int main(void)
{
    int a[]={0,7,8,9,3,4,5,1,2,6,11,10,13,12};
    SelectSort(a,sizeof(a)/sizeof(a[0]));//40/4
    print_content(a,sizeof(a)/sizeof(a[0]));
    return 0;
}

相关文章:

  • 2022-12-23
  • 2022-02-26
  • 2021-11-01
  • 2021-12-25
  • 2022-01-01
  • 2021-07-07
  • 2021-05-29
猜你喜欢
  • 2022-01-22
  • 2022-12-23
  • 2021-08-24
  • 2022-12-23
  • 2021-11-22
  • 2021-05-13
  • 2022-01-15
相关资源
相似解决方案