选择排序

  每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

  例如:

  初始关键字 [49 38 65 97 76 13 27 49]
  第一趟排序后 13 [38 65 97 76 49 27 49]
  第二趟排序后 13 27 [65 97 76 49 38 49]
  第三趟排序后 13 27 38 [97 76 49 65 49]
  第四趟排序后 13 27 38 49 [76 97 65 49 ]
  第五趟排序后 13 27 38 49 49 [97 65 76]
  第六趟排序后 13 27 38 49 49 65 [97 76]
  第七趟排序后 13 27 38 49 49 65 76 [97]
  最后排序结果 13 27 38 49 49 65 76 97

  程序:

int main(void)
{
    int a[10],i,j,tmp,b;
    srand(time(NULL));
    for(i=0;i<10;i++)
        a[i]=rand()%100;
    for(i=0;i<10;i++)
        printf("%3d",a[i]);
    printf("
");
    for(i=0;i<9;i++)
    {
        tmp=i;
        for(j=i+1;j<10;j++)
         {
           if(a[tmp]>a[j])
           tmp=j;
        }
        if(i!=tmp)
        {
            b=a[tmp];
            a[tmp]=a[i];
            a[i]=b;
        }
    }
    for(i=0;i<10;i++)
    printf("%3d",a[i]);
    printf("
");
    return 0;
}

摘自http://baike.baidu.com/link?url=n97WMi4BdkVvFXERSgdozICVv3_Nbxf-AZU8h2XDxgsG6_MA6uD6qJWsGNDZcs8w

原文地址:https://www.cnblogs.com/budapeng/p/3301017.html