Java冒泡排序法

冒泡排序法:

概念:

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

代码实现(以蓝桥杯中的问题为例!):

 1 /**
 2 问题描述
 3   给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
 4 输入格式
 5   第一行为一个整数n。
 6   第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
 7 输出格式
 8   输出一行,按从小到大的顺序输出排序后的数列。
 9 样例输入
10 5
11 8 3 6 4 9
12 样例输出
13 3 4 6 8 9
14 **/
15 import java.util.Scanner;
16 
17 public class Main {
18     public static void main(String[] args) {
19         Scanner sc = new Scanner(System.in);
20         int n = sc.nextInt();
21         if (n >= 1 && n <= 200) {
22             int[] a = new int[n];
23             for (int i = 0; i < n; i++) {
24                 a[i] = sc.nextInt();
25                 if(a[i]<-10000||a[i]>10000){
26                     return;
27                 }
28             }
29 
30             // 这里为最主要的部分
31             for (int i = 0; i < a.length - 1; i++) {
32                 for (int j = 0; j < a.length - i - 1; j++) {
33                     if (a[j] > a[j + 1]) {
34                         int temp = a[j];
35                         a[j] = a[j + 1];
36                         a[j + 1] = temp;
37                     }
38                 }
39             }
40             for (int i = 0; i < a.length; i++) {
41                 System.out.print(a[i] + " ");
42             }
43 
44         }
45     }
46 }

优缺点:

优点:比较简单,空间复杂度较低,相比于其他的排序方法,是比较稳定的

缺点:时间复杂度相对来说较高,相比于其他的排序方法,效率比较慢

 

posted @ 2019-03-05 06:35  高欣的博客  阅读(5164)  评论(0编辑  收藏  举报