冒泡么,你这个冒泡写错了啊
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编写下面的冒泡程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)