原作者:老铁123
出处:https://blog.csdn.net/qewgd/article/details/83051762
本文归作者【老铁123】和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
冒泡排序
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
代码如下
public class BubbleSort {
// 循环
public static int[] bubbleSort(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j + 1]) {
swap(array, j, j + 1);
}
}
}
return array;
}
//递归
public static int[] bubbleSortByRec(int[] array, int index) {
if (index < 1 || index > array.length - 1)
return array;
for (int j = 0; j < index; j++) {
if (array[j] > array[j + 1]) {
swap(array, j, j + 1);
}
}
return bubbleSortByRec(array, index - 1);
}
public static void swap(int[] array, int m, int n) {
int temp = array[m];
array[m] = array[n];
array[n] = temp;
}
}