相信只要学编程语言的对冒泡排序算法一点都不陌生,记得上数据结构课程时候,讲到排序时候第一个就将冒泡排序,由于长时间没有设计到排序算法,发现以前好多东西忘记了,现在重新总结一下,各种排序方法,首先就以冒泡排序开始。
一、算法思想
冒泡排序是一种简单的交换类排序。基本思路就是从头开始遍历元素,在扫描的过程中依次对相邻的元素进行比较,每次将关键值大的放在后面。这样一遍结束后,最大的那个元素就在最后面。下次遍历元素时候从第一个到倒数第二个,依次这样下去。如果对于有N个关键字的元素,只需要执行N-1 就可以排序。由于每次都是将小的值浮到上面,大值沉到下面,故称冒泡排序。
一般地,对n个元素进行冒泡排序,总共需要进行n-1趟。第1趟需要比较n-1次,第2趟需要比较n-2次,......第i趟需要比较n-i次。
二、性能分型
时间复杂度 O(n2) 稳定性:稳定
这里补充一下稳定性概念: 在排序的记录序列中&