当前位置:网站首页>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; |
| | } |
| | } |
边栏推荐
- Redis cluster creation, capacity expansion and capacity reduction
- Cesium entity (entities) entity deletion method
- Condition annotation in uni-app realizes cross segment compatibility, navigation jump and parameter transfer, component creation and use, and life cycle function
- Method of converting GPS coordinates to Baidu map coordinates
- Selenium - by changing the window size, the width, height and length of different models will be different
- Cesium 点击获取模型表面经纬度高程坐标(三维坐标)
- Nacos service installation
- The mechanical hard disk is connected to the computer through USB and cannot be displayed
- The most classic 100 sentences in the world famous works
- Selenium ide installation recording and local project maintenance
猜你喜欢
Docker advanced learning (container data volume, MySQL installation, dockerfile)
Selenium ide installation recording and local project maintenance
[5g NR] UE registration process
ruoyi接口权限校验
. Net program configuration file operation (INI, CFG, config)
Yolov1 learning notes
Yolov3 learning notes
23 design models
arcgis创建postgre企业级数据库
Reinstalling the system displays "setup is applying system settings" stationary
随机推荐
How matlab modifies default settings
Selenium ide installation recording and local project maintenance
Condition annotation in uni-app realizes cross segment compatibility, navigation jump and parameter transfer, component creation and use, and life cycle function
Selenium - by changing the window size, the width, height and length of different models will be different
ROS+Pytorch的联合使用示例(语义分割)
使用conda创建自己的深度学习环境
MATLAB如何修改默认设置
Zhiniu stock project -- 04
Oauth2.0 - Introduction and use and explanation of authorization code mode
Heap sort and priority queue
Introduction to software engineering
Oracle Database Introduction
Shell conditional statement
GPS坐标转百度地图坐标的方法
Floating menu operation
Page text acquisition
Kubesphere - Multi tenant management
Local rviz call and display of remote rostopic
Simple password lock
Kubesphere - set up redis cluster