首页 > 编程语言 > 详细

算法:冒泡排序

时间:2020-04-19 00:10:13      阅读:82      评论:0      收藏:0      [点我收藏+]
  • 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。
  • 冒泡排序的基本原理是:每一趟只将一个数归位。若要将n个元素排序,至少需要进行n-1趟操作。

以将12、35、99、18、76这5个数按照从小到大的循序进行排序为例:
第1趟操作:将最大的数归位,需进行4次排序。
(1)将12与35进行比较,12<35, 不用交换位置,结果:12,35,99,18,76.
(2)将35与99进行比较,35<99, 不用交换位置,结果:12,35,99,18,76.
(3)将99与18进行比较,99>18, 顺序错误,二者交换位置,结果:12,35,18,99,76.
(4)将99与76进行比较,99>76, 顺序错误,二者交换位置,结果:12,35,18,76,99.
至此,最大的数99归位

第2趟操作:将第二大的数归位,需进行3次排序。
(1)将12与35进行比较,12<35, 不用交换位置,结果:12,35,18,76,99.
(2)将35与18进行比较,35>18, 顺序错误,二者交换位置,结果:12,18,35,76,99.
(3)将35与76进行比较,35<76, 不用交换位置,结果:12,18,35,76,99.
至此,第二大的数76归位

第3趟操作:将最中间的数归位,需进行2次排序。
(1)将12与18进行比较,12<18, 不用交换位置,结果:12,18,35,76,99.
(2)将18与35进行比较,18<35, 不用交换位置,结果:12,18,35,76,99.
至此,最中间的数35归位

第4趟操作:将第二小的数归位,需进行1次排序。
将12与18进行比较,12<18, 不用交换位置,结果:12,18,35,76,99.
至此,第二小的数18归位

java代码实现:

 1 package com.guohao.arithmetics;
 2 
 3 import java.util.Arrays;
 4 import java.util.Scanner;
 5 
 6 /**
 7  * 冒泡排序
 8  */
 9 public class BubbleSort {
10     public static void main(String[] args){
11         Scanner reader = new Scanner(System.in);
12         int n = reader.nextInt();  //要排序的元素个数
13         int[] arr = new int[n];  //数组arr用于存储待排序的元素
14 
15         for(int i=0; i<n; i++){
16             arr[i] = reader.nextInt();  //依次输入待排序的元素
17         }
18         reader.close();
19 
20         //从小到大进行排序
21         for(int i=0; i<n-1; i++){  //要将n个元素排序至少需进行n-1趟操作
22             for(int j=0; j<n-i-1; j++){  //每趟操作需进行n-i-1次排序
23                 if(arr[j] > arr[j+1]){ //如果前一个元素比后一个元素大,则二者交换位置
24                     int temp = arr[j];
25                     arr[j] = arr[j+1];
26                     arr[j+1] = temp;
27                 }
28             }
29         }
30 
31         System.out.println("排序后的数组:"+Arrays.toString(arr));  //输出排序后的数组
32     }
33 }

 

算法:冒泡排序

原文:https://www.cnblogs.com/Seraph1999/p/12723663.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!