Annuaire d'articles
1. Qu'est-ce que le tri par sélection ?
Le tri par sélection (Sélection> tri) est un algorithme de tri simple et intuitif. Principe de fonctionnement : Le plus petit (le plus grand) élément est sélectionné parmi les éléments de données à trier pour la première fois , stocké dans la position de départ de la séquence, puis le plus petit (le plus grand) élément est trouvé parmi les éléments non triés restants , puis placé à la fin de la séquence triée. Et ainsi de suite, jusqu'à ce que le nombre de tous les éléments de données à trier soit nul. Le tri par sélection est une méthode de tri instable.
( Encyclopédie Baidu )
Le tri par sélection est un algorithme de tri relativement simple et facile à comprendre qui ne nécessite pas d'espace de stockage supplémentaire.
Remarque : en raison de sa complexité temporelle trop importante, il n'est pas recommandé de l'utiliser pour trier .
1. La complexité de l'algorithme est la suivante :
- Complexité temporelle O(n^2)
- Complexité spatiale O(1)
2. Principe de l'algorithme
1. Affichage des animations :
2. Prononcer des mots humains :
Cet algorithme effectuera N recherches sur le tableau à trier, et trouvera à chaque fois la plus petite (la plus grande) valeur du tableau à trier et la placera derrière les données précédemment triées.
Résumé et code machine réel (version C)
Affichage des codes :
#include <stdio.h>
int main()
{
int arr[10] = {
10,9,8,7,6,5,4,3,2,1 }; //待排序数组
int tmp = 0; //用来存储找到的最小值的下标
//选择排序
for (int i = 0; i < 10; i++)
{
tmp = i;
for (int j = i; j < 10; j++) //寻找待排序数据中的最小(大)值
{
if (arr[j] < arr[tmp])
{
tmp = j;
}
}
int p = arr[tmp];
arr[tmp] = arr[i];
arr[i] = p;
}
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
Affichage des résultats en cours d'exécution :