排序
来源:互联网 发布:皓月屠龙翅膀进阶数据 编辑:程序博客网 时间:2024/05/01 07:55
冒泡排序是:相邻两数两两比较,进行相邻大小的交换,共进行N-1次,每轮 进行N-1-i次.核心程序段为:for(i=0;i<N-1;i++){ for(j=0;j<N-i-1;j++) if(a[j]>a[j+1]) {temp=a[j];a[j]=a[j+1];a[j+1]=temp}}选择排序是:首数与后数进行两两相比,按大小进行交换,共进行N-1次,每轮进行N-1次,每轮进行从i+1开始N-1为止。核心程序段为:for(i=0;i<N-1;i++){ for(j=i+1;j<N-1;j++) if(a[i]>a[j]) {temp=a[i];a[i]=a[j];a[j]=temp}}注意了与冒泡排序的核心段的区别在于: (1)交换的两个对象:冒泡是 a[j]>a[j+1] 选折是 a[i]>a[j] (2)轮次的变化: 冒泡是 for(j=0;j<N-i-1;j++) 选折是 for(j=i+1;j<N-1;j++) 冒泡的形式是:a[n]与啊a[n+1]比较交换 选折的形式则是: 第一次 a[0]与以后的比较交换 第二次 a[1]与以后的比较交换 ........ 第n次是a[n]与以后的比较交换