当前位置:网站首页>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; |
| | } |
| | } |
边栏推荐
- Kubesphere - build MySQL master-slave replication structure
- 有意思的鼠標指針交互探究
- Cesium Click to obtain the longitude and latitude elevation coordinates (3D coordinates) of the model surface
- Common interview questions
- About the difference between count (1), count (*), and count (column name)
- The mechanical hard disk is connected to the computer through USB and cannot be displayed
- Fluentd is easy to use. Combined with the rainbow plug-in market, log collection is faster
- 100000 bonus is divided up. Come and meet the "sister who braves the wind and waves" among the winners
- Chapter 8. MapReduce production experience
- Paper notes vsalm literature review "a comprehensive survey of visual slam algorithms"
猜你喜欢

Interesting research on mouse pointer interaction

有意思的鼠標指針交互探究

Fluentd is easy to use. Combined with the rainbow plug-in market, log collection is faster

Support vector machine for machine learning

YOLOV2学习与总结

10万奖金被瓜分,快来认识这位上榜者里的“乘风破浪的姐姐”

Oauth2.0 - Introduction and use and explanation of authorization code mode

使用conda创建自己的深度学习环境
![[5g NR] UE registration process](/img/e3/f881d51fba03010de8c45ea480f3f0.png)
[5g NR] UE registration process

Kubernetes notes (10) kubernetes Monitoring & debugging
随机推荐
Oauth2.0 - explanation of simplified mode, password mode and client mode
Chapter 8. MapReduce production experience
YOLOV2学习与总结
CKA certification notes - CKA certification experience post
[set theory] relational closure (relational closure solution | relational graph closure | relational matrix closure | closure operation and relational properties | closure compound operation)
輕松上手Fluentd,結合 Rainbond 插件市場,日志收集更快捷
How matlab modifies default settings
conda和pip的区别
Une exploration intéressante de l'interaction souris - pointeur
Various usages of MySQL backup database to create table select and how many days are left
The win7 computer can't start. Turn the CPU fan and stop it
[untitled] 8 simplified address book
Pytorch exercise items
Pdf files can only print out the first page
Project summary --01 (addition, deletion, modification and query of interfaces; use of multithreading)
技术管理进阶——你了解成长的全貌吗?
Condition annotation in uni-app realizes cross segment compatibility, navigation jump and parameter transfer, component creation and use, and life cycle function
Numerical method for solving optimal control problem (I) -- gradient method
Oracle database synonym creation
The mechanical hard disk is connected to the computer through USB and cannot be displayed