当前位置:网站首页>Simple understanding of bubble sorting
Simple understanding of bubble sorting
2022-07-03 06:29:00 【xuhss_ com】
High quality resource sharing
| Learning route guidance ( Click unlock ) | Knowledge orientation | Crowd positioning |
|---|---|---|
| 🧡 Python Actual wechat ordering applet 🧡 | Progressive class | This course is python flask+ Perfect combination of wechat applet , From the deployment of Tencent to the launch of the project , Create a full stack ordering system . |
| Python Quantitative trading practice | beginner | Take you hand in hand to create an easy to expand 、 More secure 、 More efficient quantitative trading system |
Detailed description
Bubble sort is a sort of exchange sort , The basic idea is to sort in a set of numbers , All numbers in the range that are not currently ordered , Compare and adjust the two adjacent numbers from top to bottom , Let the larger number sink , Smaller up .
That is, whenever two adjacent numbers are compared and their order is found to be opposite to the sorting requirements , Just swap them .
The detailed implementation steps of bubble sorting are as follows :
- Let's start with the first element , Compare adjacent elements , If the former is bigger than the latter , Just exchange the two of them ;
- Before and after , Do the same for each pair of adjacent elements , From the beginning of the first couple to the end of the last couple , So the last element will be the largest number ;
- Put the largest element found this time on the last element position , Then repeat the above for all elements except the largest element 1~2 step ;
- Repeat the above steps , Until the last element and the second element are compared 、 In exchange for , Then the sorting is finished .
Algorithm diagram

Problem solving
Is bubble sorting an in place sort algorithm ?
Bubble sort is an in place sort algorithm , The process only involves the exchange of adjacent data , Only temporary space at the constant level is needed , Its spatial complexity is O(1).
Is bubble sort a stable sort algorithm ?
In order to ensure the stability of bubble sorting algorithm , When there are two adjacent elements of equal size, no exchange is required , Data of the same size will not change the order before and after sorting , So bubble sort is a stable sort algorithm .
What is the time complexity of bubble sorting ?
Using the optimal time complexity solution , The time complexity when the original sequence is ordered is O(n); The worst case time complexity is O(n2); The average time complexity is O(n2).
Code implementation
| | package cn.fatedeity.sort; |
| | |
| | public class BubbleSort { |
| | private static void swap(int[] numbers, int src, int target) { |
| | int temp = numbers[src]; |
| | numbers[src] = numbers[target]; |
| | numbers[target] = temp; |
| | } |
| | |
| | public static int[] sort(int[] numbers) { |
| | for (int i = 0; i < numbers.length - 1; i++) { |
| | boolean doSwap = false; |
| | for (int j = 0; j + 1 < numbers.length - i; j++) { |
| | if (numbers[j] > numbers[j + 1]) { |
| | swap(numbers, j, j + 1); |
| | doSwap = true; |
| | } |
| | } |
| | // Steps to optimize basic bubble sorting |
| | if (!doSwap) { |
| | // If you traverse the entire sequence, you don't need to exchange , It means that the whole sequence has been completely ordered |
| | return numbers; |
| | } |
| | } |
| | return numbers; |
| | } |
| | } |
边栏推荐
- 轻松上手Fluentd,结合 Rainbond 插件市场,日志收集更快捷
- Openresty best practices
- Use abp Zero builds a third-party login module (I): Principles
- Heap sort and priority queue
- Cesium Click to obtain the longitude and latitude elevation coordinates (3D coordinates) of the model surface
- . Net program configuration file operation (INI, CFG, config)
- Oauth2.0 - using JWT to replace token and JWT content enhancement
- ssh链接远程服务器 及 远程图形化界面的本地显示
- Selenium ide installation recording and local project maintenance
- Oauth2.0 - use database to store client information and authorization code
猜你喜欢

Une exploration intéressante de l'interaction souris - pointeur

轻松上手Fluentd,结合 Rainbond 插件市场,日志收集更快捷

Simple understanding of ThreadLocal

ROS+Pytorch的联合使用示例(语义分割)

使用 Abp.Zero 搭建第三方登录模块(一):原理篇

YOLOV3学习笔记

Read blog type data from mysql, Chinese garbled code - solved

Push box games C #

Use selenium to climb the annual box office of Yien

远端rostopic的本地rviz调用及显示
随机推荐
.NET程序配置文件操作(ini,cfg,config)
UNI-APP中条件注释 实现跨段兼容、导航跳转 和 传参、组件创建使用和生命周期函数
Naive Bayes in machine learning
[untitled] 8 simplified address book
The list of "I'm crazy about open source" was released in the first week, with 160 developers on the list
[system design] proximity service
[5g NR] UE registration process
Simple understanding of ThreadLocal
【无标题】5 自用历程
ruoyi接口权限校验
opencv
Mysql database binlog log enable record
In depth analysis of kubernetes controller runtime
Simple password lock
Zhiniu stock project -- 05
Tabbar settings
[set theory] relational closure (relational closure solution | relational graph closure | relational matrix closure | closure operation and relational properties | closure compound operation)
Jackson: what if there is a lack of property- Jackson: What happens if a property is missing?
【无标题】8 简易版通讯录
Exportation et importation de tables de bibliothèque avec binaires MySQL