麻烦各位帮忙解释一下java中的冒泡原理越详细越好

麻烦各位帮忙解释一下java中的冒泡原理越详细越好,第1张

冒泡么,你这个冒泡写错了啊

for(int i =0;i <arrlength;i++){

for(int j=i+1;j < arrlength;j++) {

int temp = arr[i];

arr[i]=arr[j];

arr[j]=temp;

}

}

肯定会有错的~

if(sj[c-1]>sj[c])

d = sj[c-1];

注意 if语句的作用范围

如果不加{}只为if后的一语句也就是d=sj[c-1];

这样一是达不到排序的目的

还会报错

因为 当sj[c-1]<sj[c]时不会执行d = sj[c-1];

而你后面又用sj[c]=d

所以报错

正解

if(sj[c-1]>sj[c]) {

d=sj[c-1];

sj[c-1]=sj[c];

sj[c]=d;

}

public class BubbleSort

{

public void sort(int[]a)

{

int temp=0;

for(int i=alength-1;i>0;--i)

{

for(int j=0;j<i;++j)

{

if(a[j+1]<a[j])

{

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

}

}

以下我的回答,仅供参考:

int a[]=new int[]{2,5,1,9,6,12,4};//声明一个要排序的数组

int i,j;//声明用于做计数的标量

int t;//声明用于值交换用的中间变量

for(i=alength-1;i>=1;i--)//循环(数组长度-1)次

for(j=0;j<i;j++)//循环i次,这样一个循环可以将前i+1个数中的最大数移动到第i+1位置上(注这里的位置不是数组下标)。

if(a[j]>a[j+1]){

t=a[j];//交换变量a[j]和a[j+1]值的第一步

a[j]=a[j+1];//交换变量a[j]和a[j+1]值的第二步

a[j+1]=t;//交换变量a[j]和a[j+1]值的第三步

}

systemoutprintln("the sorted number:");

for(i=0;i<alength;i++)//打印排序好的数组

systemoutprintln(a[i]+",");

}

}

以上回答,仅供参考。

如果发现我注释错误,请及时提出。

熟悉冒泡排序的话,这个程序应该很好对应。

int arr[] = {

    6, 1, 563, 3134, 84, 12, 653, 55, 7

};

int temp = 0;

for (int i = 0; i < arrlength; i++) {

    // +1到-1就是最短距离

    for (int j = i + 1; j < arrlength - 1; j++) {

        // 从大到小

        if (arr[j] < arr[i]) { // 打括弧

            temp = arr[j];

            arr[j] = arr[i];

            arr[i] = temp;

        }

    }

}

Systemoutprint("最终排序结果:");

for (int a = 0; a < arrlength; a++) {

    Systemoutprint(arr[a] + "  ");

}

以上就是关于麻烦各位帮忙解释一下java中的冒泡原理越详细越好全部的内容,包括:麻烦各位帮忙解释一下java中的冒泡原理越详细越好、java 冒泡法、新菜鸟求教,如何用java编写下面的冒泡程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10634513.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存