黑马程序员技术交流社区
标题:
冒泡排序
[打印本页]
作者:
天师道长
时间:
2016-5-19 16:54
标题:
冒泡排序
怎样使用冒泡排序,它的代码怎样写
作者:
我是你岁哥❤环
时间:
2016-5-19 19:27
class BubbleSort
{
public static void main(String[] args)
{
System.out.println("********冒泡排序!********");
//定义一个整数类型的数组,长度为10
int arr[] = {12,3,45,23,56,7,56,11,20,30};
//排序之前的数组
System.out.println("数组排序之前:");
printArray(arr);
//调用排序的方法对数组进行排序
bubbleSort(arr);
//打印输出数组中的整数
System.out.println("数组排序之后:");
printArray(arr);
}
public static void bubbleSort(int arr[]){
/*冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。
* 即首先比较第1个和第2个数,将小数放前,大数放后。
* 然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。
* 重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),
* 将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,
* 在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。
*/
for(int i=0; i<arr.length; i++){
for(int j=0; j<arr.length-i-1; j++){
if(arr[j]>arr[j+1]){
swap(arr, j, j+1);
}
}
}
}
/*此方法用于相互交换数组中的两个数
* 定义一个临时变量temp用于存储其中一个数
*/
public static void swap(int arr[], int a, int b){
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
//循环出数组中的每一个元素
public static void printArray(int arr[]){
for(int i=0; i<arr.length; i++){
System.out.print(arr[i] + "\t");
}
}
}
复制代码
作者:
TCK8888
时间:
2016-5-19 20:27
将楼上的那位哥们代码,换个写法
/**
* 冒泡排序
*
* @author Administrator
*
*/
public class BubbleSort {
public static void main(String[] args) {
int[] intArray = { 45, 36, 55, 77, 66, 12, 26 };
System.out.println("排序前的数组元素:");
printArray(intArray);
// 对数组进行冒泡排序
bubbleSort(intArray);
System.out.println("\n排序后的数组元素:");
printArray(intArray);
}
/*
* 冒泡排序
*/
public static void bubbleSort(int[] intArray) {
for (int i = 0; i < intArray.length; i++) {
for (int j = 0; j < intArray.length - i - 1; j++) {
if (intArray[j] > intArray[j + 1]) {
swap(intArray, j, j + 1);
}
}
}
}
/*
* 交换元素
*/
public static void swap(int[] intArray, int i, int j) {
intArray[i] = intArray[i] ^ intArray[j];
intArray[j] = intArray[j] ^ intArray[i];
intArray[i] = intArray[i] ^ intArray[j];
}
/*
* 遍历数组元素
*/
public static void printArray(int[] intArray) {
for (int a : intArray) {
System.out.print(a + "\t");
}
}
}
复制代码
作者:
Belive丶Me
时间:
2016-5-19 21:20
楼上正解
作者:
Noodles.
时间:
2016-5-19 22:05
看起来好复杂啊!
作者:
yikwing
时间:
2016-5-19 22:07
善用搜索,这个问题都回复好几遍了
作者:
sunchuan
时间:
2016-5-19 22:08
顶贴是一种美德
作者:
再见卡卡罗特
时间:
2016-5-19 22:21
看一看。。。。。。。。。。。
作者:
我是你岁哥❤环
时间:
2016-5-19 22:38
TCK8888 发表于 2016-5-19 20:27
将楼上的那位哥们代码,换个写法
使用位运算进行元素交换
作者:
宁静||致远
时间:
2016-5-19 22:58
学习了,受教
作者:
宁静||致远
时间:
2016-5-19 22:59
学习了,受教
作者:
liukai3385
时间:
2016-5-19 23:02
作者:
su3356859
时间:
2016-5-19 23:02
一楼正解.........
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2