Java面试_冒泡排序

简介:

冒泡排序:

Java中有一些基础的排序算法,这种一般常见于面试题中。

冒泡排序:就是将一个长度为n的数组做n-1次排序(循环)。


总结为依据话就是两两比较,大的数据交换位置。


①第一次循环

将第一个元素与第二个相比,如果比第二个小,那么数据就不变;

如果比第二个大,那么就交换两者的位置。

第二个和第三个比,如果第二个比第三个大,者交换位置,否则不变。

以此类推,直到和最后一个相比较完为止。

这样最后一个数就是最大值。


②第二次就从第一个开始,比较到n-1个为止。

这样渐渐的最大的数都依次排列到了最后,第一个数是最小的。就像冒泡一样,最上面是最大的泡,所以称为冒泡排序。


下面是实现冒泡排序的代码,相当于是两层for循环。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package  ****
import  org.junit.Test;
/**
  * @author jon
  *
  *自己写一个冒泡排序
  */
public  class  BubbleSort {
     @Test
     public  void  testBubbleSort() {
         //定义一个int数组
         int [] a = { 12 , 23 , 10 , 33 , 45 , 20 };
         //依次获取元素,然后和元素后面的每一个比较,如果比后面的小就放到后面,
         //如果比后面的大则不变,那么最后一个就是最小的了
         for  ( int  i =  0 ; i < a.length- 1 ; i++) { //第一次比较
             System.out.println( "第" +(i+ 1 )+ "次排序结果为:" );
             for  ( int  j =  0 ; j < a.length- 1 -i; j++) {  //每次比较的都是剩下的了
                 if  (a[j] > a[j+ 1 ]) {
                     int  temp = a[j];
                         a[j] = a[j+ 1 ];
                         a[j+ 1 ] = temp;
                 }
                 System.out.print( "_" +a[j]); //打印正在排序的
             }
             //打印已经排序好的
             for  ( int  m = a.length- 1 -i; m < a.length; m++) {
                 System.out.print( "_" +a[m]);
             }
             System.out.println();
         }
         //遍历a数组
         System.out.println( "最终结果为:" );
         for  ( int  i =  0 ; i < a.length; i++) {
             System.out.print(a[i]+ "  " );
         }
     }
}
/*  输出的结果为:
          第1次排序结果为:
         _12_10_23_33_20_45
         第2次排序结果为:
         _10_12_23_20_33_45
         第3次排序结果为:
         _10_12_20_23_33_45
         第4次排序结果为:
         _10_12_20_23_33_45
         第5次排序结果为:
         _10_12_20_23_33_45
         最终结果为:
         10  12  20  23  33  45
  */


      本文转自建波李 51CTO博客,原文链接:http://blog.51cto.com/jianboli/1867258,如需转载请自行联系原作者






相关文章
|
21天前
|
Java 程序员
java线程池讲解面试
java线程池讲解面试
38 1
|
1月前
|
算法 搜索推荐 Java
Java实现冒泡算法
Java实现冒泡算法
11 0
|
1月前
|
Java C语言
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
28 0
|
1天前
|
安全 Java
就只说 3 个 Java 面试题 —— 02
就只说 3 个 Java 面试题 —— 02
8 0
|
1天前
|
存储 安全 Java
就只说 3 个 Java 面试题
就只说 3 个 Java 面试题
5 0
|
11天前
|
Java 关系型数据库 MySQL
大厂面试题详解:Java抽象类与接口的概念及区别
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
33 0
|
12天前
|
Java 索引
Java练习题-用冒泡排序法实现数组排序
Java练习题-用冒泡排序法实现数组排序
14 2
|
20天前
|
存储 缓存 算法
Java入门高频考查基础知识4(字节跳动面试题18题2.5万字参考答案)
最重要的是保持自信和冷静。提前准备,并对自己的知识和经验有自信,这样您就能在面试中展现出最佳的表现。祝您面试顺利!Java 是一种广泛使用的面向对象编程语言,在软件开发领域有着重要的地位。Java 提供了丰富的库和强大的特性,适用于多种应用场景,包括企业应用、移动应用、嵌入式系统等。下是几个面试技巧:复习核心概念、熟悉常见问题、编码实践、项目经验准备、注意优缺点、积极参与互动、准备好问题问对方和知其所以然等,多准备最好轻松能举一反三。
46 0
Java入门高频考查基础知识4(字节跳动面试题18题2.5万字参考答案)
|
24天前
|
Java 程序员 API
java1.8常考面试题
在Java 1.8版本中,引入了很多重要的新特性,这些特性常常成为面试的焦点
42 8
|
29天前
|
NoSQL Java 关系型数据库
整理Java面试题
整理Java面试题