当前位置:网站首页>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; |
| | } |
| | } |
边栏推荐
- Simple understanding of ThreadLocal
- Page text acquisition
- Selenium ide installation recording and local project maintenance
- [set theory] relational closure (relational closure solution | relational graph closure | relational matrix closure | closure operation and relational properties | closure compound operation)
- 代码管理工具
- Mysql database binlog log enable record
- 使用conda创建自己的深度学习环境
- opencv鼠标键盘事件
- Openresty best practices
- Decision tree of machine learning
猜你喜欢

数值法求解最优控制问题(一)——梯度法

Oauth2.0 - using JWT to replace token and JWT content enhancement

Oauth2.0 - use database to store client information and authorization code

tabbar的设置

CKA certification notes - CKA certification experience post

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

In depth analysis of kubernetes controller runtime

Merge and migrate data from small data volume, sub database and sub table Mysql to tidb

Yolov3 learning notes

Zhiniu stock project -- 04
随机推荐
冒泡排序的简单理解
tabbar的设置
Mysql database
ruoyi接口权限校验
In depth learning
In depth analysis of kubernetes controller runtime
使用 Abp.Zero 搭建第三方登录模块(一):原理篇
Docker advanced learning (container data volume, MySQL installation, dockerfile)
pytorch练习小项目
When PHP uses env to obtain file parameters, it gets strings
Time format record
Simple password lock
Luogu problem list: [mathematics 1] basic mathematics problems
. Net program configuration file operation (INI, CFG, config)
代码管理工具
Support vector machine for machine learning
Learning notes -- principles and comparison of k-d tree and IKD tree
.NET程序配置文件操作(ini,cfg,config)
How to scan when Canon c3120l is a network shared printer
【LeetCode】Day93-两个数组的交集 II