/**
* 冒泡排序:每次遍历,获取最大值,放到一端,下次遍历范围-1继续寻找最大值
* 步骤:
* 1、用标识将数组分为已排好序和未排序的两组
* 2、每次遍历寻找未排序中最大值放入已排序(fori)
* 3、标识往未排序方向移动一位(i--)
* 时间复杂度:O(n^2)
*/
public class BubbleTest {
public static void main(String[] args) {
int[] arr = {3,1,6,3,8,3,5,9,4,67,2,5,7,2,6,3,5};
bubbleSort(arr);
for (int i : arr) {
System.out.print(i+",");
}
}
/**
* 冒泡方法
*
* @param arr 数组
*/
private static void bubbleSort(int[] arr) {
if (arr == null || arr.length < 2) {
return;
}
// 从大到小遍历数组
for (int i = arr.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr, j, j+1);
}
}
}
}
private static void swap(int[] arr, int j, int i) {
arr[i] = arr[j] ^ arr[i];
arr[j] = arr[j] ^ arr[i];
arr[i] = arr[j] ^ arr[i];
}
}
冒泡算法
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 排序算法 冒泡排序 选择排序 冒泡排序和选择排序的核心思路: 冒泡排序是:相邻两个元素两两进行比较,小则交换位置。...