您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > C语言程序设计-排序法比较
用冒泡法对5个整数按从小到大的顺序排列输出。排序的方法很多,主要有:冒泡法选择法第1轮比较4次:第1次21139032-1进行交换第2次13219032-1不进行交换第3次13219032-1进行交换第4次13213290-1进行交换第1轮比较结果:132132-190最大的数已排好应用举例(排序:冒泡法)用冒泡法对n个数从小到大排序。假定有5个无序的数21,13,90,32,-1第2轮比较3次:第1次132132-190不进行交换第2次132132-190不进行交换第3次132132-190进行交换第2轮比较结果:1321-13290第3轮比较2次:第1次1321-13290不进行交换第2次1321-13290进行交换第3轮比较结果:13-1213290第4轮比较1次:第1次13-1213290进行交换第4轮比较结果:-113213290应用举例(排序:冒泡法)续第i轮比较第j次比较应用举例(排序:冒泡法)续for(i=1;i=n-1;i++)for(j=0;jn-i;j++)if(a[j]a[j+1]){med=a[j];a[j]=a[j+1];a[j+1]=med;}第1轮比较4次:第1次p=021139032-1p=1第2次21139032-1p=1第3次21139032-1p=1第4次21139032-1p=4第1轮比较交换21和-1:-113903221最小的数已排好应用举例(排序:选择法)用选择法对n个数从小到大排序。假定有5个无序的数21,13,90,32,-1第2轮比较3次:第1次p=1-113903221p=1第2次p=1-113903221p=1第3次p=1-113903221第2轮比较不用交换:-113903221第3轮比较2次:第1次p=2-113903221p=3第2次p=3-113903221p=4第3轮比较交换90与21:-113213290第4轮比较1次:第1次p=3-113213290p=3第4轮比较不用交换:-113213290应用举例(排序:选择法)续应用举例(排序:选择法)续for(i=0;in-1;i++){p=i;for(j=i+1;jn;j++)if(a[j]a[p])p=j;med=a[p];a[p]=a[i];a[i]=med;}冒泡法:两个相邻的数依次进行比较;比较完立刻进行交换,最多交换n(n-1)/2次选择法:用当前比较过的数中最小的数依次与后面的数进行比较;一轮比较完进行一次交换,最多交换n-1次
本文标题:C语言程序设计-排序法比较
链接地址:https://www.777doc.com/doc-7025724 .html