冒泡排序:从第一个元素开始,相邻元素之间进行比较,如果是逆序则交换位置,如果数组大小为n,那么第一趟要进行n-1次比较,这次比较后,最大或最小元素被置底(被置底的元素就没必要参加接下来的比较了);第二趟从第一个元素开始到第n-1个元素,相邻元素之间两两比较,共进行n-2次,这些数中的最大或最小元素被置倒数第二层;以此类推,共经过n-1趟排序后,完成排序。因为该过程像水泡往水面冒,所以取名为冒泡排序。
选择排序:假设有n个元素,首先通过n-1次比较,从n个数中找出最大或最小的元素, 将它与第一个数交换,将它置于第一个元素位置上;再从第二个数开始,通过n-2次比较,从剩余的n-1个数中找出最大或最小的元素,将它与第二个数交换,将它置于第二个元素位置上;重复上述过程,共经过n-1趟排序后,排序结束。
冒泡排序理论的计算量为n(n-1)/2;选择排序的计算量与冒泡排序相同;
不过因为冒泡排序有元素交换操作,而选择排序没有,所以理论上选择要比排序速度快些。