//冒泡排序
- public void bubbleSort(int arr[]) {
- boolean didSwap;
- for(int i = 0, len = arr.length; i < len - 1; i++) {
- didSwap = false;
- for(int j = 0; j < len - i - 1; j++) {
- if(arr[j + 1] < arr[j]) {
- swap(arr, j, j + 1);
- didSwap = true;
- }
- }
- if(didSwap == false)
- return;
- }
- }
稳定性:
冒泡排序就是把小的元素往前调(或者把大的元素往后调)。注意是相邻的两个元素进行比较,而且是否需要交换也发生在这两个元素之间。
所以,如果两个元素相等,我想你是不会再无聊地把它们俩再交换一下。
如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个元素相邻起来,最终也不会交换它俩的位置,所以相同元素经过排序后顺序并没有改变。
所以冒泡排序是一种稳定排序算法。