


C/C++培训
达内IT学院
400-996-5531

冒泡排序是C++中最常见的一种排序方式。容易理解,写起来简便;缺点就是耗时太长。本文,我们就来好好讲讲冒泡排序和以冒泡排序为本质的sort算法。
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个名字的由来是因为大的数会慢慢“浮”到数组的首项,故名“冒泡排序”。
冒泡排序的原理是这样的:比较相邻两个数,若第二项比第一项大,则交换两项。经过n(n-1)次排序,最终会把n个数从大到小排列出来。
时间复杂度:时间复杂度对于冒泡排序来说很很很重要,因为NOIP的时候用冒泡排序不计算好时间稍有不慎就会超时。
若记录序列的初始状态为"正序",则冒泡排序过程只需进行一趟排序,在排序过程中只需进行n-1次比较,且不移动记录;反之,若记录序列的初始状态为"逆序",则需进行n(n-1)/2次比较和记录移动。因此冒泡排序总的时间复杂度为O(n*n)。
冒泡排序程序(都是积累多年的经验):
Sort算法:
Sort,STL中自带的一种精确、简便的算法。具体用法如下:
1、Sort函数包括在头文件为#include<;algorithm>;的C++标准库中,具体原理就是冒泡排序的原理(此处就不重复了)。
2、Sort函数有三个参数:
(1)第一个是要排序的数组的起始地址。
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法。能够是从大到小也但是从小到大,若要从大到小排序则需要第三个参数。此时默认的排序方法是从小到大排序。
3、第三个参数的使用时还要加一个函数complare()。具体函数如下:
实现1-10从小到大排序的具体程序:
本文内容转载自网络,本着分享与传播的原则,版权归原作者所有,如有侵权请联系我们进行删除。
填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有