冒泡排序和快速排序的代码效率

冒泡排序算法:重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。
快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
从描述上看,冒泡排序需要重复走访队列中的元素,而快速排序只需要走访一遍,找个基准值,将小于基准值的值放在基准值的左边,大于基准值的放在基准值的右边.然后再在剩下的部分里再找个基准值,把它分为2部分,小的放左边,大的放右边,直至所有的部分都被划分完.和二分法查找类似.
在某种意义上,快速排序是从整体到部分再到个体的处理,是一段序列按照小大分开后再处理更小段的排序;而冒泡排序则是一个个个体去比较,所以快速排序要比冒泡排序更为高级,快速排序是冒泡排序的改进
快速排序时间复杂度是O(nlogn),冒泡排序的时间复杂度是O(n^2)
接下来用代码来比较下它们完成对1000个随机数排序所需要的时间。
冒泡排序的代码如下:
在这里插入图片描述
运行结果如下:
在这里插入图片描述
快速排序的代码如下:
在这里插入图片描述
运行结果如下:
在这里插入图片描述
从实验结果来看,快速排序算法所用时长比冒泡排序少。当数据量越多,差距越明显.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章