黑马程序员技术交流社区
标题:
冒泡排序
[打印本页]
作者:
lcl
时间:
2014-7-30 07:54
标题:
冒泡排序
本帖最后由 lcl 于 2014-8-4 16:55 编辑
用一段代码做出冒泡排序,最好能有详细的注释
作者:
蔡爽
时间:
2014-7-30 07:59
class ArrayTest1
{
public static void bubbleSort(int[] arr)
{
for(int x=0;x<arr.length-1;x++)
{//让每一次比较的元素减少避免角标越界
for(int y=0;y<arr.length-x-1;y++)
{
if(arr[y]>arr[y+1])
{
int temp=arr[y];
arr[y]=arr[y+1];
arr[y+1]=temp;
}
}
}
}
public static void main(String[] args)
{
int[] arr={5,1,6,4,2,8,9};
bubbleSort(arr);
printArray(arr);
}
}
作者:
掌柜的--刘饮
时间:
2014-7-30 08:19
冒个泡!!!
作者:
masai158
时间:
2014-7-30 08:20
我 也来 冒个泡
作者:
阿磊
时间:
2014-7-30 08:22
冒泡冒泡。。。
作者:
刘沙
时间:
2014-7-30 08:35
冒个泡 嘿嘿
作者:
vaqh
时间:
2014-7-30 08:38
同来冒泡
作者:
依然超级赛亚人
时间:
2014-7-30 08:46
本帖最后由 依然超级赛亚人 于 2014-7-30 09:06 编辑
D:\传智播客\讲课视频以及PPT\day14(StringBuffer,Arrays)\code
冒泡排序的原理:相邻元素两两比较,大的往后排。第一次比较完成后(
内层for
循环执行完毕),最大值在最后边。按照这种规律,次大值以及后面的值就都自动排序完毕了。
public class ArrayDemo {
public static void main(String[] args) {
int[] arr = { 24, 69, 80, 57, 13 };//定义了一个无序数组
//冒泡排序最核心的部分:内层循环将第一个元素依次和后面的 //数比较使最大值往后排,外层循环重复这样的比较,直至所有数排序完毕。
for (int y = 0; y < arr.length - 1; y++) {
for (int x = 0; x < arr.length - 1; x++) {
if (arr[x] > arr[x + 1]) {
int temp = arr[x];
arr[x] = arr[x + 1];
arr[x + 1] = temp;
}
}
}
printArray(arr);
}
//定义一个方法,封装冒泡排序的代码(为了使程序复制过去可以直接运行我 //才把它和主方法一起加的,楼主只看核心部分就行)
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.println(arr
);
} else {
System.out.print(arr
+ ",");
}
}
}
}
//
结合我们老师画的原理图可能会更好理解,但我不太会传图片,只把路径传上去(最上面,还非故意的泄露了信息,呵呵),还得赶时间,今天先不传了,楼主需要的话再留言。
作者:
黑马-蒋振军
时间:
2014-7-30 09:04
二楼正解,可惜printArray(arr)未定义
作者:
lcl
时间:
2014-7-30 09:06
都来冒泡吧,欢迎冒泡
作者:
席杰
时间:
2014-7-30 09:08
冒个大泡。呵呵
作者:
侯岩卿
时间:
2014-7-30 09:21
本帖最后由 侯岩卿 于 2014-7-30 09:23 编辑
//冒泡排序
//即是把每两个相邻的元素进行比较,判断是否进行交换
public static void bubbleSort(int[] arr)
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=0; y<arr.length-1-x; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。
{
if(arr[y]>arr[y+1])
{
//定义第三方变量,通过角标置换的方法来实现数组中元素位置的交换。
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
//把冒泡这个功能定义在了一个函数内,只要调用并传入一个int型数组就可以用
作者:
张周飞
时间:
2014-7-30 09:32
//冒泡排序算法
// 25 65 12 5 68 15 98
// 25 12 5 65 15 68 98
// 12 5 25 15 65 68 98
// 5 12 15 25 65 68 98
int[] num={25,65,98,12,5,68,15};
for(int i=0;i<num.length-1;i++){
for(int j=0;j<num.length-i-1;j++){
if(num[j]>num[j+1]){
int temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
//Arrays.sort(num);//另一种方法排序、搞定。上面需要加一个工具类{ import java.util.Arrays;}
for(int i=0;i<num.length;i++){
System.out.println("冒泡排序之后的这个数组的顺序的是:"+num
);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2