首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于冒泡排序

2012-04-25 
关于冒泡排序 求助import java.util.Randompublic class SC {public static void main(String [] args){i

关于冒泡排序 求助
import java.util.Random;

public class SC {
public static void main(String [] args){
int randomNum;
int [] b=new int[20]; 
for(int i=0;i<20;i++){
b[i]=0;


}
for(int i=0;i<20;i++){
for(int j=0;j<=i;j++){
randomNum=1+(int)(Math.random()*100);


if(b[j]==randomNum ){
break;
}
if(j==i){
b[j]=randomNum;
System.out.println("第"+(j+1)+"个整数是"+b[j]);
}

}
}
}
}

在这个基础上实现冒泡排序 从小到大,谢谢各位,本人初学。

[解决办法]
稍微在lz后面加了一段,不过觉得前面两个for语句不懂楼主想实现什么,如果只是想random 20个数,没必要这么麻烦,如果是在random同时进行排序,好像冒泡排序有问题。

Java code
package TestPackage;import java.util.Random;public class SC {    public static void main(String[] args) {        int randomNum;        int[] b = new int[20];        for (int i = 0; i < 20; i++) {            b[i] = 0;        }        for (int i = 0; i < 20; i++) {            for (int j = 0; j <= i; j++) {                randomNum = 1 + (int) (Math.random() * 100);                if (b[j] == randomNum) {                    break;                }                if (j == i) {                    b[j] = randomNum;                    System.out.println("第" + (j + 1) + "个整数是" + b[j]);                }            }        }                int temp;        for(int i=0; i<20; i++){            for(int j=i; j<19; j++){                if(b[j]>b[j+1]){                    temp = b[j];                    b[j] = b[j+1];                    b[j+1] = temp;                }            }        }                for(int i=0; i<20; i++){            System.out.println("第" + (i + 1) + "个整数是" + b[i]);        }    }}
[解决办法]
给你冒泡排序算法行不?
int temp ;
for(int i = 0 ; i < n - 1;i++){

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

if(a[j] > a[j+1])
{
// 此处将两数作交换

}
你可以把这作为一个方法,传递数组过来即可,返回排序好的数组

}
[解决办法]
Java code
//冒泡排序boolean flag=false;int temp=0;for(int i=0;i<b.length-1;i++){    flag=false;    for(int j=0;j<b.length-1-i;j++)    {        if(b[j]>b[j+1])        {            temp=b[j+1];            b[j+1]=b[j];            b[j]=temp;            flag=true;        }    }    if(!flag)    {        break;    }}for(int j=0;j<b.length;j++)    {        System.out.print(b[j]+" ");    }
[解决办法]
//冒泡
public void test1(){
int a[]={1,4,6,8,2,3,0,34,12,99};
 
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length-i-1;j++){
if(a[j+1]<a[j]){
a[j+1]=a[j+1]^a[j];
a[j]=a[j+1]^a[j];
a[j+1]=a[j+1]^a[j];
}
}
}
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
//选择
public void test2(){
int b[]={1,4,6,8,2,3,0,34,12,99};
for(int i=0;i<b.length;i++ ){
for(int j=i+1;j<b.length;j++){
if(b[i]>b[j]){
b[i]=b[i]^b[j];
b[j]=b[i]^b[j];
b[i]=b[i]^b[j];
}
}
}

for(int i=0;i<b.length;i++){
System.out.print(b[i]+" ");
}
}

热点排行
Bad Request.