经典排序算法——冒泡排序
2018-02-01 14:23
267 查看
冒泡排序(起泡排序)
public static int[] bubblesort(int[] arr){ int i, j, temp, len = arr.length; //一共进行len-1轮遍历,i用来缩减j遍历规模的, for (i = 0; i < len - 1; i++) { //每一轮遍历后,最大的元素放置在最后,下一轮遍历只需要遍历,len-1-i个元素即可。 //时间复杂度为n+(n-1)+(n-2)....+1,0(n^2),对待有序数组不友好,仍然进行相同次数的遍历和比较。 for (j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } System.out.println(Arrays.toString(arr)); } } return arr; } public static void main(String[] args) { int[] arr={9,8,7,6,5,4,3,2,1}; bubblesort(arr); }
改进 使用标记变量的方法
public static int[] bubblesort(int[] arr){ int i, j, temp, len = arr.length; int change=1; //一共进行len-1轮遍历,i用来缩减j遍历规模的, for (i = 0; i < len - 1&& change!=0; i++) { change=0; //每一轮遍历后,最大的元素放置在最后,下一轮遍历只需要遍历,len-1-i个元素即可。 //时间复杂度为n+(n-1)+(n-2)....+1,0(n^2),对待有序数组不友好,仍然进行相同次数的遍历和比较。 for (j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; //标记变量用于记录数据是否发生交换,如果没有交换,停止遍历 change = 1; } System.out.println(Arrays.toString(arr)); } } return arr; } public static void main(String[] args) { int[] arr={9,8,7,6,5,4,3,2,1}; bubblesort(arr); }
[1, 8, 7, 6, 5, 4, 3, 2, 9] [1, 2, 7, 6, 5, 4, 3, 8, 9] [1, 2, 3, 6, 5, 4, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] --------------------- [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9]
相关文章推荐
- 经典排序算法,冒泡排序
- 经典排序算法(一)--冒泡排序、快速排序java实现
- 漫谈经典排序算法:三、冒泡排序 && 快速排序
- Java(.NET)经典排序算法之冒泡排序
- C#实现所有经典排序算法(选择排序 冒泡排序 快速排序)
- 经典排序算法学习笔记一——冒泡排序
- C#实现所有经典排序算法(选择排序 冒泡排序 快速排序)
- 经典排序算法-MFC实现之3:冒泡排序
- C#实现所有经典排序算法(选择排序,冒泡排序,快速排序,插入排序,希尔排序)
- 经典排序算法回顾:插入排序,冒泡排序
- 经典排序算法 - 冒泡排序
- 用JavaScript实现十大经典排序算法--冒泡排序
- 经典的排序算法--选择排序与冒泡排序
- 【java】 排序算法入门之冒泡排序经典讲解
- 经典排序算法(一)冒泡排序
- C#实现所有经典排序算法(选择排序 冒泡排序 快速排序)
- 四种经典排序算法:冒泡排序、选择排序、插入排序和希尔排序
- 经典排序算法 -----冒泡排序,插入排序,快速排序,归并排序,堆排序
- 经典排序算法---冒泡排序(bubble sort)
- 经典的排序算法--选择排序与冒泡排序