当前位置:首页 » 编程语言 » java中的冒泡排序

java中的冒泡排序

发布时间: 2022-07-14 00:28:03

① 谁能详细的解释下java中的冒泡排序 谢谢- .-

int
array[]=new
int[]{9,2,3,1,0,5,8,4,7,6};//初始化一个数组,长度为10
int
temp;//定义一个临时变量,
System.out.println("原有数组内容:");//输出这几个汉字
printArray(array);//调用printArray方法,并将前面初始化的数组作为参数传递给该方法
for(int
i
=1;i<array.length;i++){//这里应该是算法的核心了,但是如果想理解,还是先看看内层的循环,
for(int
j
=0;j<array.length-i;j++){//循环了0到数组长度10-1
一共10次
if(array[j]>array[j+1]){//数组的第一个元素a[0]与第二个元素a[1]做比较,如果大于,第2个元素
temp=array[j];//那么将大的那个值a[0]的值赋值给临时变量
array[j]=array[j+1];//再将a[1]的值赋值给a[0]
array[j+1]=temp;//最后把临时变量中的值复制给a[1]
//看懂这里了吗?如果前面的数,或者形象点a[0]
,a[1],..依次往上排,那么就是如果排在下面的数组元素的值大于上面的数组元素的值那么就将这两个元素的位置换一下,大的放上面,也就是排在数组的后面,像不像冒泡,水中的气泡,越到上面越大;如果小的话当然就没关系了,还是小的在下面
}
//这一次内层循环做完之后,保证了最下面的气泡(数组元素的位置),它跟后面所有的元素都做了一次比较,如果它最大就能排到最上面
}
//最外层的循环保证了,从头到尾将所有的数组元素按照从前到后,或者从下到上的顺序都与后面的元素比较了一次,这就完成了所有元素的排序
}
System.out.println("从小到大排序后的结果:");
printArray(array);
}
private
static
void
printArray(int[]
array)
{//来看看,这个方法做了什么,在上面调用这个方法的时候已经将你初始化的那个长度为10的数组做为参数传递了进来
//
TODO
Auto-generated
method
stub
for(int
i
:
array){//用增强for循环,遍历这个数组
System.out.print(i+"
");//一次打印i的值和空格
}
System.out.println("\n");//都遍历结束后,换行
}
输入内容已经达到长度限制
还能输入
9999

希望你满意,遇到问题多多分析!

② java中的冒泡排序

都不正确,正确的冒泡排序写法是:

for(inti=0;i<arrs.length-1;i++){
for(intj=0;j<arrs.length-1-i;j++){
if(a[j]>a[j+1]){
intt=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}

③ 用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需要集合操作的写法。
1、第一句,是获取对象内部成员的句柄,句柄类似c++语言中的指针,只是指向对象,而不是对象本身
2、第二三句是为了修改集合对象内部的内容,此时你无法直接去修改它们(因为假如你只是修改了句柄指向的内容,对于集合来说它根本没有发生任何变化)
3、集合提供的修改方法,比如set(i,obj),其内部的实现方式是数组,但封装后没有提供类似数组一样的操作,如list[i]=obj,这种写法。所以你没法直接这么写(但是C#语言就提供了这种写法,所以你如果用C#就可以三句都用等于号赋值)

⑤ “JAVA写冒泡排序”是什么意思

冒泡排序的英文Bubble Sort,是一种最基础的交换排序。

大家一定都喝过汽水,汽水中常常有许多小小的气泡,哗啦哗啦飘到上面来。这是因为组成小气泡的二氧化碳比水要轻,所以小气泡可以一点一点向上浮动。而我们的冒泡排序之所以叫做冒泡排序,正是因为这种排序算法的每一个元素都可以像小气泡一样,根据自身大小,一点一点向着数组的一侧移动。

冒泡排序算法的原理如下:

  • 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

  • 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

  • 针对所有的元素重复以上的步骤,除了最后一个。

  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

  • 具体如何来移动呢?让我们来看一个栗子:

    希望对您有所帮助!~

⑥ 冒泡排序如何使用Java语言完成

冒泡排序的原理:

从第一个元素开始,将相邻的两个元素依次进行比较,直到最后两个元素完成比较。如果前一个元素比后一个元素大,则交换它们的位置。整个过程完成后最后一个元素就是最大值,完成第一轮比较,后边通过for循环依次完成后续比较。

运行代码如下:

package day01;

public class 冒泡 {

public static void main(String[] args) {

int []arr=new int[] {12,45,33,46,3};

System.out.println("排序之前的元素顺序:");

for(int i=0;i<arr.length;i++)

{

System.out.print(arr[i]+" ");

}

int t;

for(int j=0;j<arr.length-1;j++)

{

for(int x=0;x<arr.length-1;x++)

{

if(arr[x]>arr[x+1])

{

t=arr[x];

arr[x]=arr[x+1];

arr[x+1]=t;

}

}

}

System.out.println();

System.out.println("排序之后的元素顺序:");

for(int k=0;k<arr.length;k++)

{

System.out.print(arr[k]+" ");

}

}

}

运行结果截图:

(6)java中的冒泡排序扩展阅读:

(1)冒泡排序每一轮把一个最大的元素放在数组的最后

(2)如果想要实现倒叙比较输出可以把代码判断大小的部分改为下边代码即可。

if(arr[x]>arr[x+1])

{

t=arr[x];

arr[x]=arr[x+1];

arr[x+1]=t;

}

(3)使用知识点:数组length的使用,数组的定义,for循环的嵌套。



⑦ Java冒泡排序的原理

冒泡排序是所欲排序算法里最好理解的了。
1、排序算法:
A)比较相邻的元素。如果第一个比第二个大,就交换他们两个。
B)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
C)针对所有的元素重复以上的步骤,除了最后一个。
D)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
2、给你一个java的实现代码:
public class BubbleSort{
     public static void main(String[] args){
         int score[] = {67, 69, 75, 87, 89, 90, 99, 100};
         for (int i = 0; i < score.length -1; i++){ //最多做n-1趟排序
             for(int j = 0 ;j < score.length - i - 1; j++){ //对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)
                 if(score[j] < score[j + 1]){ //把小的值交换到后面
                     int temp = score[j];
                     score[j] = score[j + 1];
                     score[j + 1] = temp;
                 }
             }
             System.out.print("第" + (i + 1) + "次排序结果:");
             for(int a = 0; a < score.length; a++){
                 System.out.print(score[a] + "\t");
             }
             System.out.println("");
         }
             System.out.print("最终排序结果:");
             for(int a = 0; a < score.length; a++){
                 System.out.print(score[a] + "\t");
        }
     }
 }

热点内容
自己有了域名和服务器如何发文章 发布:2025-03-08 19:23:03 浏览:257
至尊存储卡 发布:2025-03-08 19:15:37 浏览:282
数据库与java编译器 发布:2025-03-08 19:15:33 浏览:371
foxmail邮箱文件夹 发布:2025-03-08 19:15:27 浏览:581
sqlselectifthen 发布:2025-03-08 19:15:26 浏览:347
如何解锁人性的密码 发布:2025-03-08 19:14:09 浏览:844
游戏进不去重启了服务器怎么弄 发布:2025-03-08 19:06:38 浏览:708
登录linux命令 发布:2025-03-08 19:06:35 浏览:443
iis网站禁止访问 发布:2025-03-08 18:57:39 浏览:212
安卓和苹果有什么数据不一样 发布:2025-03-08 18:56:53 浏览:239