java 冒泡排序打印

publicclassArraySort{publicstaticvoidsort(int[]array)//排序{for(inti=0;i<array.length-1... public class ArraySort
{
public static void sort(int[] array) //排序
{
for (int i = 0 ;i <array.length -1 ;i++ )
{
for (int j = 0; j<array.length - i - 1 ;i++ )
{
if (array[j] > array[j+1])
{
int temp = array[j];
array[j] = array[j+1];
array[j+1] =temp;
}
}
}
}
public static void main(String[] args)
{
int[] a = {1,6,2,0};
sort(a);
for (int i = 0; i <a.length; i++ )
{
System.out.println(a[i]);
}
}
}

这个例子我打印结果是原来的顺序。为什么?如果升序打印 应该怎么写呢
展开
 我来答
趣事情
2015-10-08 · 知道合伙人互联网行家
趣事情
知道合伙人互联网行家
采纳数:517 获赞数:5452
电脑技术,软件开发。移动开发。网站建设相关专业知识。都可以提供解答和相关技术指导。

向TA提问 私信TA
展开全部
1.冒泡排序的原理:假设要求的数组是正序,两两进行比较,如果前一个书比后一个数小,位置不变。如果前一个数比后一个数大,位置互换,再跟后一个数进行比较,直到最后。就是逐步把大数送到最后,下面来个实例

举个例子:int[] array = {2,4,9,7,6,5};

2.第一轮2和4进行比较,2<4,位置不变。再4和9进行比较,4<9,位置不变。再9和7进行比较,9>7,9和7的位置互换。
再9和6进行比较,9>6,9和6的位置互换。再9和5进行比较,9>5,位置互换。第一轮比较的结果就是2 4 7 6 5 9。

3.第二轮2和4进行比较,2<4,位置不变。再4和7进行比较,4<7,位置不变。再7和5进行比较,7>6,7和6的位置互换。再7和5进行比较,7>5,7和5的位置互换。第二轮的结果就是2 4 6 5 7 9。

4.第三轮2和4进行比较,2<4,位置不变。再4和6进行比较,4<6,位置不变。再6和5进行比较,6>5,6和5的位置互换。第三轮的结果是2 4 5 6 7 9。

代码如下:
package com.test;

public class BubbleSortTest
{
public static void main(String[] args)
{
int[] array = {2,4,9,7,6,5};
BubbleSortTest bst = new BubbleSortTest();
bst.bubbleSort(array);
}

public int[] bubbleSort(int[] array)
{
for(int i=0;i<array.length-1;i++)
{
boolean bl = true;
for(int j=0;j<array.length-1-i;j++)
{
if(array[j] > array[j+1])
{
bl = false;
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}

//如果当轮没有发生位置变化,说明已经排序完毕,就没有必要再进行判断了
if(bl)
{
break;
}

/*--观看结果的代码,可以忽略---------------------*/
System.out.println("第" + (i + 1) + "趟排序");
for(int k = 0; k < array.length; k++)
{
System.out.print(array[k] + " ");
}
System.out.println();
/*-------------------------------------*/

}
return array;
}

}
zjf468922842
2012-07-26 · TA获得超过466个赞
知道小有建树答主
回答量:396
采纳率:100%
帮助的人:228万
展开全部
hanwei_0311的是对的,数组本来就是地址的传递,会更改数组的值的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
少女心Eve
2012-07-26 · 记录美好生活每一天,分享生活新鲜事。
少女心Eve
采纳数:590 获赞数:714

向TA提问 私信TA
展开全部
for (int i = 0 ;i <array.length-1 ;i++ ){
for (int j = 0; j<array.length - i-1 ;j++ )
{
if (array[j] > array[j+1]){
int temp = array[j+1];
array[j+1] = array[j];
array[j] =temp;
}
}
}
你好:
for循环里面的代码是这样子的,请仔细看看,理解一下,
i代表的是比较的轮数,
j代表的是每次比较需要比较的次数,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
修怀芹26
2012-07-26 · TA获得超过1208个赞
知道小有建树答主
回答量:695
采纳率:75%
帮助的人:456万
展开全部
java 只有值传递,没有指针传递。
在你的sort方法中已经排好了。
要么你在sort中输出。
要么你把a数组定义为类的成员变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cax580230
2012-07-26
知道答主
回答量:30
采纳率:0%
帮助的人:7.3万
展开全部
一样的思路,冒泡是两者之间相互比较来进来排序,那么要降序你就换一个比较方式,这个只能告诉你思路,哈哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(12)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式