当前位置:网站首页>C language bubble sort
C language bubble sort
2022-07-06 05:51:00 【bit..】
Bubble sort (Bubble Sort) It is also a simple and intuitive sorting algorithm . It repeatedly visits the sequence to be sorted , Compare two elements at a time , If they're in the wrong order, exchange them . The job of the interview sequence is to repeat until there is no need to exchange , That is to say, the sequence has been sorted . The name of this algorithm comes from the fact that the smaller the elements, the more slowly " floating " Go to the top of the list .
As one of the simplest sorting algorithms , Bubble sorting makes me feel like Abandon It feels the same in a word book , Every time on the first page , So most familiar with . Bubble sorting also has an optimization algorithm , It's about making a flag, When elements are not exchanged in a sequence traversal , It is proved that the sequence has been ordered . But this improvement doesn't do much to improve performance .
1. Algorithm steps
Compare adjacent elements . If the first one is bigger than the second one , Just swap them .
Do the same for each pair of adjacent elements , From the beginning of the first couple to the end of the last couple . After this step , The last element will be the maximum number .
Repeat the above steps for all elements , Except for the last one .
Keep repeating the above steps for fewer and fewer elements each time , Until there's no pair of numbers to compare .
2. Dynamic diagram demonstration
3. When is the fastest
When the input data is already in positive order .
4. When is the slowest
When the input data is in reverse order ( Write a for It's OK to output data in reverse order )
5. Code implementation ( From big to small )
#include<stdio.h>
void Bubble_sort(int arr[], int size)
{
int i, j, tmp;
for (i = 0; i <= size - 1; i++)
{
for (j = 0; j <= size - 1 - i; j++)
{
if (arr[j] < arr[j + 1]) // If you want to arrange from small to large, just put '<' Change to '>' That is to say
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main()
{
int arr[5], i;
printf(" Please enter five numbers :");
for (i = 0; i < 5; i++)
{
scanf_s("%d", &arr[i]);
}
printf(" Array before arrangement :");
for (i = 0; i < 5; i++)
{
printf("%d", arr[i]);
}
printf("\n");
printf(" Sorted array :");
Bubble_sort(arr, 5);
for (i = 0; i < 5; i++)
{
printf("%d", arr[i]);
}
return 0;
}
边栏推荐
- wib3.0 跨越,在跨越(ง •̀_•́)ง
- 华为BFD的配置规范
- 【经验】UltralSO制作启动盘时报错:磁盘/映像容量太小
- Demander le Code de texte standard correspondant à un centre de travail dans l'ordre de production
- Yunxiaoduo software internal test distribution test platform description document
- Problems encountered in installing mysql8 on MAC
- 【经验】win11上安装visio
- The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
- The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
- H3C V7版本交换机配置IRF
猜你喜欢
授予渔,从0开始搭建一个自己想要的网页
28io stream, byte output stream writes multiple bytes
Database: ODBC remote access SQL Server2008 in oracel
Report on the competition status and investment decision recommendations of Guangxi hospital industry in China from 2022 to 2028
Redis message queue
Li Chuang EDA learning notes 12: common PCB board layout constraint principles
wib3.0 跨越,在跨越(ง •̀_•́)ง
Station B, Master Liu Er - dataset and data loading
PDK process library installation -csmc
【SQL server速成之路】——身份验证及建立和管理用户账户
随机推荐
[SQL Server fast track] - authentication and establishment and management of user accounts
进程和线程
[JVM] [Chapter 17] [garbage collector]
[QNX hypervisor 2.2 user manual]6.3.3 using shared memory (shmem) virtual devices
Selective parameters in MATLAB functions
Analysis report on development trends and investment planning of China's methanol industry from 2022 to 2028
Zoom through the mouse wheel
Luogu [Beginner Level 4] array p1427 number game of small fish
Yygh-11-timing statistics
What is independent IP and how about independent IP host?
Construction of yolox based on paste framework
什么是独立IP,独立IP主机怎么样?
Download, install and use NVM of node, and related use of node and NRM
Rustdesk builds its own remote desktop relay server
Game push image / table /cv/nlp, multi-threaded start
H3C V7版本交换机配置IRF
Installation de la Bibliothèque de processus PDK - csmc
授予渔,从0开始搭建一个自己想要的网页
入侵检测领域数据集总结
[experience] when ultralso makes a startup disk, there is an error: the disk / image capacity is too small