当前位置:网站首页>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.
边栏推荐
- oh-my-zsh
- 实现两个页面之前的通信(使用localStorage)
- Basic syntax of MySQL DDL and DML and DQL
- [C language] file operation
- 21st day of written test mandatory training
- Rpc-bdy (5) - automatic service logoff, load balancing
- [super complete sorting] Cisco and Huawei order comparison memo, take it away without thanks! Anytime, anywhere
- A series of problems of dp+ backtracking segmentation palindrome string
- Babylon.js cool canvas background animation JS special effects
- 数据湖:Apache Hudi简介
猜你喜欢

idea写web项目时报错Failed to load resource: the server responded with a status of 404 (Not Found)

C file operation details

Talk about the application of FIFO

JS 數組 isAarray() typeof

Tweenmax+svg Pikachu transformation ball

Application of motion capture in automatic control field

QT custom class uses custom parametric signals and slots

The error of van swipe in the rotation chart: cannot read a properties of null (reading width)

JS small game running bear and cat source code

Jump statements break and continue
随机推荐
4.合宙Air32F103_LCD
Error code 0x80004005
Binary tree traversal (day 74)
Cache component status when Vue components are switched, that is, dynamic components keep alive dynamic components and asynchronous components
Industrial controller, do you really know your five insurances and one fund?
Leetcode Hot 100 (topic 8) (232/88/451/offer10/offer22/344/)
IO流分类整理
idea写web项目时报错Failed to load resource: the server responded with a status of 404 (Not Found)
Express built-in Middleware
uva1344
Conteneur STL set
Network parameter management
C文件操作详解
Outlook client outlook.com mailbox setting method
MySQL learning - MySQL software installation and environment configuration (Windows) details!
Okaleido tiger NFT is about to log in to the binance NFT platform. Are you looking forward to it?
Babylon.js cool canvas background animation JS special effects
[MySQL learning] install and use multiple versions of MySQL, MySQL 8 and MySQL 5.7 at the same time, compressed version
OSPF comprehensive experimental configuration
水题: 接雨水