冒泡排序的思想

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

冒泡排序的思想

第一次: 从一个数组的最后一个元素到该数组的第一个元素进行扫描,比较后一个元素与前一个元素的大小,如果后一个小于前一个,交换顺序。通过这样的交换,那么我们就可以把该数组的最小元素换位到该数组的第一个位置。

第二次: 从该数组的最后一个元素到该数组的第二个元素进行扫描,比较后一个元素与前一个元素的大小,如果后一个小于前一个,交换顺序。通过这样的交换,那么我们就可以把该数组的最小元素换位到该数组的第二个位置。

依次这样的循环。。。。

如果是有n 个元素的话,那么我们就要进行n-1次的冒泡,就可以把该数组从小到大排好序。(但是这样循环的次数太多了,程序的效率比较的低)

你想啊,给你一个排好的数组,你也要这样去循环很多次排序(没必要)。所以我们就设置一个标志量yq ,用它来记录是否发生了交换,也就是说如果有一次不发生交换,那么说明我们的数组的顺序已经排好序了,即结束操作。

具体代码:void bubble(int *pa,int n)

{

int i,j,temp,yq;

for(i=0;i

yq=1;

for(j=n-1;j>i;j--)

if(pa[j]

temp=pa[j-1];

pa[j-1]=pa[j];

pa[j]=temp;

yq=0;

}

if(yq==1) return;

}

}

其实,跟书上差不多,我想这样会好理解一点哈!嘿嘿,先看一下吧!

相关文档
最新文档