价格网站,页面具有动态效果网站建设,小说阅读网站建设市场需求分析,住建部城乡建设网站思想#xff1a;对于一个列表,每个数都是一个气泡 #xff0c;数字越大表示越重 #xff0c;最重的气泡移动到列表最后一位#xff0c;冒泡排序后的结果就是“气泡”按照它们的重量依次移动到列表中它们相应的位置。 算法#xff1a;搜索整个列表… 思想对于一个列表,每个数都是一个气泡 数字越大表示越重 最重的气泡移动到列表最后一位冒泡排序后的结果就是“气泡”按照它们的重量依次移动到列表中它们相应的位置。 算法搜索整个列表比较相邻元素如果两者的相对次序不对则交换它们其结果是最大值“想水泡一样”移动到列表的最后一个位置上这也是它在最终完成排序的列表中合适的位置。然后再次搜索列表将第二大的值移动至倒数第二个位置上重复该过程直至将所有元素移动到正确的位置上。 下面的动画演示了对{3,6,5,9,7,1,8,2,4}进行冒泡排序的全过程: 代码实现【在VC 2005上运行成功】 #include stdafx.hint main(){ int list[9] {3,6,5,9,7,1,8,2,4}; int length sizeof(list)/sizeof(int); int temp 0; for(int i1;ilength;i){ bool exchangefalse; for(int j0;jlength-i;j){ if(list[j]list[j1]){ temp list[j]; list[j]list[j1]; list[j1]temp; exchangetrue; } } if(!exchange){ break; } } for(int i0;ilength;i){ printf(%d\t,list[i]); } return 0;
} 这里面采用了一个交换标志exchange,如果在一趟排序中没有出现过一次交换即exchangefalse,说明此数据已经是有序了所以可以退出排序过程。 转载于:https://www.cnblogs.com/ChrisWang/archive/2009/09/09/1563674.html