① java中的冒泡排序
for(int j=0;i<monkeys.length-1-i;j++)
{
if(monkeys[j].height>monkeys[j+1].height) //该行会报数组越界错误
第一行。。for(int j=0;i<monkeys.length-1-i;j++)中的i<monkeys.length-1-i明显逻辑不对。。该是j<monkeys.length-1-i吧
② java冒泡排序
程序如下:
public class TTT
{
public static void main(String[] args)
{
int[] num = {20,31,65,14,98,49,27,90,16,85};
boolean flag = true;
int count = 1;
while(flag)
{
flag = false;
for(int i=0;i<num.length-1;i++)
{
if(num[i] > num[i+1])
{
int temp = num[i];
num[i] = num[i+1];
num[i+1] = temp;
flag = true;
}
}
System.out.print("第" + count++ +"轮排序后的序列为:");
for(int i=0;i<num.length;i++)
{
System.out.print(num[i] + "\t");
}
System.out.println();
}
}
}
有问题欢迎提问,满意请采纳,谢谢!
③ java实现冒泡排序
你这样写,相当于只冒了一次泡,把最大的一个数,也就是最后一个数,找出来了,冒泡排序是要for循环里在嵌套一个for循环才能做出来的,外面的for循环控制冒泡多少次,里面的循环找出每次的最大值。你这样写少了外面的那个for循环,相当于只找了一次最大值。
④ Java冒泡排序
这段代码的核心是理解JAVA需要集合操作的写法。
1、第一句,是获取对象内部成员的句柄,句柄类似c++语言中的指针,只是指向对象,而不是对象本身
2、第二三句是为了修改集合对象内部的内容,此时你无法直接去修改它们(因为假如你只是修改了句柄指向的内容,对于集合来说它根本没有发生任何变化)
3、集合提供的修改方法,比如set(i,obj),其内部的实现方式是数组,但封装后没有提供类似数组一样的操作,如list[i]=obj,这种写法。所以你没法直接这么写(但是C#语言就提供了这种写法,所以你如果用C#就可以三句都用等于号赋值)
⑤ JAVA冒泡排序
public class Test{
public static void main(String[] args){
int[][] a=new int[2][2];
int i, j, k;
int temp;
a[0][0]=3;
a[0][1]=5;
a[1][0]=9;
a[1][1]=7;
for(i=0; i<a.length; i++){ //控制二维数组的行
for(j=0; j<a[0].length-1; j++){ //控制冒泡排序的比较趟数
for(k=0; k<a[0].length-1; k++){ //控制每一趟的比较次数
if(a[i][k]>a[i][k+1]){ //如何相邻两个元素为逆序则交换
temp=a[i][k];
a[i][k]=a[i][k+1];
a[i][k+1]=temp;
}
}
}
}
//输出方式1
for(int[] arr : a){ //arr表示一个一维数组
for(int elem : arr){ //elem表示一维数组arr中的一个元素
System.out.print(elem + "\t");
}
System.out.println();
}
//输出方式2
for(i=0; i<a.length; i++){
for(int elem : a[i]){
System.out.print(elem + "\t");
}
System.out.println();
}
//输出方式3
for(i=0; i<a.length; i++){
for(j=0; j<a[0].length; j++){
System.out.print(a[i][j] + "\t");
}
System.out.println();
}
}
}
⑥ java冒泡排序法代码
冒泡排序是比较经典的排序算法。代码如下:
for(int i=1;i<arr.length;i++){
for(int j=1;j<arr.length-i;j++){
//交换位置
}
拓展资料:
原理:比较两个相邻的元素,将值大的元素交换至右端。
思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。
第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比较;
第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比较;
依次类推,每一趟比较次数-1;
……
举例说明:要排序数组:int[]arr={6,3,8,2,9,1};
for(int i=1;i<arr.length;i++){
for(int j=1;j<arr.length-i;j++){
//交换位置
}
⑦ 用java写个冒泡排序
冒泡排序算法:
int类型的数组:3 1 6 2 5
第一次循环:
1 3 6 2 5
1 3 6 2 5
1 3 2 6 5
1 3 2 5 6
第二次循环:
1 3 2 5
1 2 3 5
1 2 3 5
第三次循环:
1 2 3
1 2 3
。。。
算法:取出最大的放在最后,下次就不用比较最后一个了。*/
publicclassBubbleSort{
publicstaticvoidmain(String[]args){
int[]a={3,1,6,2,5};
//开始排序
for(inti=a.length-1;i>0;i--){
for(intj=0;j<i;j++){
if(a[j]>a[j+1]){
//交换位置
inttemp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//遍历
for(inti=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}
⑧ java冒泡排序详细讲解
就是 一组数字组成的数组,两两比较,大的数往后推,小的数向前
从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移。每经过一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列。
⑨ 关于JAVA冒泡排序
判断每一个元素和后一个位置的元素大小,如果大于后面的元素,那么交换他们的位置。
而交换数组两个元素的时候,要借助变量。因为一旦把其中一个的值覆盖掉的话,就没法获取他的值了。。所以借助temp先把一个值存起来,再覆盖那个位置,再把存起来的值赋给另一个。。
⑩ java冒泡排序代码
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
冒泡排序算法的运作如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
publicclassBubbleSort{
publicstaticvoidmain(String[]args){
intscore[]={67,69,75,87,89,90,99,100};
for(inti=0;i<score.length-1;i++){//最多做n-1趟排序
for(intj=0;j<score.length-i-1;j++){//对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)
if(score[j]<score[j+1]){//把小的值交换到后面
inttemp=score[j];
score[j]=score[j+1];
score[j+1]=temp;
}
}
System.out.print("第"+(i+1)+"次排序结果:");
for(inta=0;a<score.length;a++){
System.out.print(score[a]+" ");
}
System.out.println("");
}
System.out.print("最终排序结果:");
for(inta=0;a<score.length;a++){
System.out.print(score[a]+" ");
}
}
}