冒泡排序和快速排序都属于交换排序,交换排序的基本方法是:两两比较待排序记录的关键字,并交换不满足次序要求的那些偶对,直到全部满足为止。
冒泡排序的算法思想是:通过无序区中相信记录关键字间的比较和位置,使关键字最小的记录如气泡一样往上浮,直到浮至水面。整个算法从关键字的最后面开始,对每两个相信记录的关键字进行比较,且使关键字小的记录换至关键字较大的记录之上,使得经过一趟冒泡排序后,关键字最小的记录到达最上面。接着第二次查找关键字次小的记录,排在第二位,依此类推。直到所有的记录都有序为止。
冒泡排序的执行时间在最坏的情况下是O(n^2),因为只有在R[j].key < R[j-1].key的情况下才交换R[j]和R[j-1],所以,冒泡排序是稳定的。