码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡排序

时间:2015-05-03 23:29:09      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

冒泡排序过程:

  第一步:从前一个元素开始,将相邻的两个元素依次进行比较,直到最后两个元素完成比较。如果前一个元素比后一个元素大,则交换它们的位置。整个过程完成后,数组中最后一个元素自然就是最大值,这样也就完成了第一轮的比较;

       第二步:除了最后一个元素,将剩余的元素继续进行两两比较,过程与第一步相似,这样就可以将数组中第二大的数放到倒数第二个位置上;

       第三步:依次类推,持续对越来越少的元素重复上面的步骤,知道没有任何一对元素需要比较为止。

 

  示例代码:

      

package cn.cjj.basic;
/**
* 冒泡排序
* @author CJJ
*
*/
public class demo6_bubbleSort {

 

public static void main(String[] args) {
int[] arr = { 5, 7, 2, 1, 9, 4 };
System.out.print("冒泡排序前:");
printArray(arr);
bubbleSort(arr);
System.out.print("冒泡排序后:");
printArray(arr);

 

}

 

/**
* 定义打印数组的方法
*
* @param arr
*/
public static void printArray(int[] arr) {
for (Object array : arr) {
System.out.print(array + " ");
}
System.out.print("\n");
}

 

/**
* 实现冒泡排序
*
* @param arr
*/
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
System.out.println("第" + (i + 1) + "轮排序后:");
printArray(arr);
}
}
}

编译结果:

冒泡排序前:5 7 2 1 9 4
第1轮排序后:
5 2 1 7 4 9
第2轮排序后:
2 1 5 4 7 9
第3轮排序后:
1 2 4 5 7 9
第4轮排序后:
1 2 4 5 7 9
第5轮排序后:
1 2 4 5 7 9
冒泡排序后:1 2 4 5 7 9

 

冒泡排序

标签:

原文地址:http://www.cnblogs.com/JJ-Chen/p/4474961.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!