加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

冒泡排序简述

发布时间:2020-12-15 08:23:26 所属栏目:Java 来源:网络整理
导读:冒泡排序(CJava实现) 2019/8/14 10:41:46 使用工具: Java:IDEA C:CLion文档编写:MarkdownPad2 每天一算法,希望自己的算法能有长足的进步,加油。 近几天线上的笔试更让我感受到各大互联网公司对于算法的重视。的确,现下主流的框架已经十分成熟,正常

冒泡排序(C&Java实现)

2019/8/14 10:41:46

使用工具:

Java:IDEA  
      C:CLion
文档编写:MarkdownPad2

每天一算法,希望自己的算法能有长足的进步,加油。

近几天线上的笔试更让我感受到各大互联网公司对于算法的重视。的确,现下主流的框架已经十分成熟,正常学习了就能知道如何使用,但是想要更进一步融合成自己的东西,融会贯通,还是需要深入其中去钻研,算法也算程序员的分水岭了,加油。


接下来看看今天的算法:冒泡排序

冒泡排序

冒泡排序(Bubble Sort),是一种较简单的 排序算法

基本思想:每次比较两个相邻的元素,如果他们的顺序错误就把它们交换过来。

原理:
?? 1. 比较相邻的元素,如果第一个比第二个大(小),就交换他们两个。
?? 2. 对每一对相邻元素做同样的工作,从开始第一对到结尾最后一对。
?? 3. 每一趟只能确定将一个数归位,针对所有元素重复以上步骤。

总结:如果有 n 个数进行排序,只需将 n-1 个数归位,也就是说要进行 n-1 趟操作。

算法分析

冒泡排序的算法核心部分是双重嵌套循环。

平均时间复杂度为:O(n^2)。

冒泡排序是一种稳定的排序算法。

代码实现

??1、C语言实现

//
// Created by czc on 2019/8/14.
//

#include<stdio.h>


int main(){

int book[100],i,j,t,n;
printf("请输入输入数据个数:");

scanf("%d",&n);

//循环读入n个数到数组中
for(i=1;i<=n;i++){
    scanf("%d",&book[i]);
}

//冒泡排序核心部分:双重循环
for(i=1;i<=n-1;i++){
    for(j=1;j<=n-i;j++){
        if(book[j]>book[j+1]){
            t=book[j];
            book[j]=book[j+1];
            book[j+1]=t;
        }
    }
}

for(i=1;i<=n;i++){
    printf("%d",book[i]);
    printf(" ");
}

return 0;
}

程序测试结果:

??2、Java实现

/*
创建人:czc
创建时间:2019/8/14
用途:冒泡排序
 */

import java.util.Scanner;

import static java.lang.System.out;
public class BubbleSort {
  private static Scanner scanner;

  public static void main(String[] args){
    int[] book=new int[100];

    int i,n;
    scanner=new Scanner(System.in);
    out.println("请输入排序数据个数:");
    n=scanner.nextInt();

    for(i=1;i<=n;i++){
        book[i]=scanner.nextInt();
    }

    //冒泡排序核心部分
    for(i=1;i<=n-1;i++){
        for(j=1;j<=n-i;j++){
            if(book[j]>book[j+1]){
                t=book[j];
                book[j]=book[j+1];
                book[j+1]=t;
            }
        }
    }

    for(i=1;i<=n;i++){
        out.print(book[i]+" ");
    }

  }

}

程序测试截图:

吾生也有涯,而知也无涯。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读