当前位置:网站首页>Exercices classiques de langue C (2) - « tri des bulles »
Exercices classiques de langue C (2) - « tri des bulles »
2022-07-24 03:27:00 【It Nunu】
CExercices de langue amusants——Tri des bulles
Catalogue des articles
Un.、Introduction au tri des bulles
Tri des bulles(Bubble Sort),Aussi connu sous le nom de séquence de tassement,La raison pour laquelle on l'appelle le tri des bulles est que l'algorithme prend relativement peu de(Grand)Les données s'élèvent comme des bulles dans l'eau jusqu'au Sommet du tableau.En même temps,Plus grande(Petit)Et les données vont tomber au bas du tableau étape par étape,Ce processus doit être exécuté plusieurs fois à travers le tableau.À chaque exécution,Comparer deux éléments adjacents,Et décider s'il faut changer de position.
2.、Explication graphique et textuelle des principes

Dessin purement manuel!
Trois、Mise en œuvre du Code
1.Exemple de code
// Tri des bullesbubble sort
void Bubble_sort(int a[], int sz)
{
int i = 0, j = 0;
for ( i = 0; i < sz - 1; i++)// Cycle externe sz-1 Une fois
{
for (j = 0; j < sz - 1- i; j++) // Circulation interne
{
if (a[j] > a[j + 1])
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
// Imprimer les fonctions du tableau
void print(int arr[],int sz)
{
int i = 0;
for ( i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int i = 0;
int arr[10] = {
2,1,8,6,9,7,3,5,4,0 };
int sz = sizeof(arr) / sizeof(arr[0]);
printf("Veuillez saisir les données:\n");
for ( i = 0; i < sz; i++)
{
scanf("%d", arr + i);
}
//print(arr, sz); // Imprimer les données du tableau avant le tri une fois
Bubble_sort(arr, sz);
print(arr, sz);
return 0;
}
2. Analyse du Code
Analyse du Code:Dans le tableau sz(szNombre d'éléments du tableau) Nombre d & apos; exécutions sz -1 Fonctionnement séquentiel , Dans chaque cycle externe, , Faites ce qui suit pour les éléments du tableau qui ne sont pas triés :Comparer deux éléments adjacents,Si l'indice est j L'élément est plus grand que l'indice est j + 1 Lorsque l'élément,Alors changez sa position, Chaque fois que le jugement est terminé et que l'échange est terminé, le tri des bulles est terminé. ,Donc, après sz - 1 Une fois l'opération terminée, vous pouvez trier tous les nombres du plus petit au plus grand. .
Explication:Circulation interne j < sz - i - 1: Parce qu'il y a un total de szÉléments j De0C'est parti., Pour la première fois 9 Comparaison secondaire pour échanger le nombre maximum à la fin , Donc l'indice du tableau est 0~ 8 Et puis avec L'indice est0(+1)~8(+1)Taille spécifique,Donc quand arr[j] Pour sz - 1 - 1 == 8Quand C'est fini. , Et ainsi de suite. sz - 2 - 1…
Résumé
Tri des bulles en général ,Facile à comprendre, La mise en œuvre du Code est simple et non compliquée , Mais le seul inconvénient est la faible efficacité. , Parce que dans chaque échange, , Un élément ne peut être échangé qu'un par un. , Si dans un tableau avec un élément de tableau plus grand , C'est un défaut. ! Donc les gars peuvent - ils trouver une meilleure solution? ?J'espère faire des progrès avec vous tous.!
Un petit ami qui a trouvé ça utile.
边栏推荐
- Advantages, disadvantages and summary of sequence list and linked list
- C user defined type details
- Exttestngireporterlistener all codes
- Leetcode Hot 100 (topic 8) (232/88/451/offer10/offer22/344/)
- JS Array isaarray () Type of
- Hcip day 10 (initial BGP border gateway protocol)
- The first edition of Niuke brush question series (automorphic number, return the number of prime numbers less than N, and the first character only appears once)
- Skywalking distributed system application performance monitoring tool - upper
- Express内置的中间件
- MySql的DDL和DML和DQL的基本语法
猜你喜欢

Hcip --- BGP comprehensive experiment

Appendtofile append failed

IO流分类整理

轮播图van-swipe的报错:cannot read a properties of null(reading width)
![[JS reverse hundred examples] a public resource trading network, reverse analysis of announcement URL parameters](/img/0b/3645a0a8ec677f96427b35bd371e7e.png)
[JS reverse hundred examples] a public resource trading network, reverse analysis of announcement URL parameters

Ways to improve the utilization of openeuler resources 01: Introduction

Babylon.js cool canvas background animation JS special effects

How to realize software function safety
![Embedded system transplantation [5] - Cross compilation tool chain](/img/2a/eadaaafe794aa9b3106441fa50ffc7.png)
Embedded system transplantation [5] - Cross compilation tool chain

Services et configurations FTP
随机推荐
4. Hezhou air32f103_ LCD
[super complete sorting] Cisco and Huawei order comparison memo, take it away without thanks! Anytime, anywhere
uva1467
I developed an app similar to wechat runnable applet with fluent
How emqx 5.0 under the new architecture of mria + rlog realizes 100million mqtt connections
Binary tree traversal
Xiaodi and Xiaohui
[JS reverse hundred examples] a public resource trading network, reverse analysis of announcement URL parameters
二分查找
How does the small program mall refine the operation of members?
Express built-in Middleware
JS Array isaarray () Type of
JS 數組 isAarray() typeof
Internet of things installation and debugging personnel let "smart" life come early
B. Eastern Exhibition- Codeforces Round #703 (Div. 2)
openEuler 资源利用率提升之道 01:概论
Hcip day 10 (initial BGP border gateway protocol)
The error of van swipe in the rotation chart: cannot read a properties of null (reading width)
Insist on accompanying study
正则表达式 \b \B 深入浅出理解单词边界的匹配