选择排序和冒泡排序

来源:互联网 发布:淘宝如何开天猫店铺 编辑:程序博客网 时间:2024/05/21 19:23

区别:为什么说选择排序的效率比冒泡排序的要高?
看下面的代码可以看出:使用冒泡排序时,比较一次交换一次值。但是选择排序比较一次,只在逻辑上交换下标,等一趟排完再决定是否交换物理上的值。

/*    5--3: 输入3个任意的数,num1,num2,num3,按从小到大的顺序排序输出。*/#include<stdio.h>void main(){    int num1,num2,num3;    int i,j,k,m;    printf("num1,num2,num3  =  ");    scanf("%d%d%d",&num1,&num2,&num3);    int a[3]={num1,num2,num3};    //冒泡排序    for(i=0;i<2;i++)    {           m =0;        for(j=0;j<2;j++)        {            if(a[j]>a[j+1])            {                   m=1;                k =a[j];                a[j] = a[j+1];                a[j+1] = k;            }           }        if(m!=1)            break;    }    printf("输出从小到大的顺序: ");    for(i=0;i<3;i++)        printf("%d\t",a[i]);    //选择排序    for(i=0;i<2;i++)    {        k=i;        for(j=k+1;j<3;j++)            if(a[k]>a[j])                k=j;        if(i!=k)        {            m = a[k];            a[k] = a[i];            a[i] = m;        }    }        printf("输出从小到大的顺序: ");    for(i=0;i<3;i++)        printf("%d\t",a[i]);}
0 0