Tri à bulles :
Le concept de base du tri à bulles (BubbleSort) est : comparer deux nombres adjacents en séquence, mettre la décimale devant et le grand nombre à l'arrière. Autrement dit, lors de la première passe : comparez d’abord le premier et le deuxième nombre, mettez la décimale en premier et le grand nombre en dernier.
Ensuite comparez le 2ème chiffre et le 3ème chiffre, mettez la décimale devant et le grand chiffre derrière, et continuez ainsi jusqu'à comparer les deux derniers nombres, mettez la décimale Avant, mettez les grands nombres derrière. C'est la fin du premier voyage, laissant le plus grand nombre à la fin. Dans la deuxième passe : commencez toujours la comparaison à partir de la première paire de nombres (car il se peut que ce soit dû à l'échange du deuxième nombre et du troisième nombre que le premier nombre ne soit plus inférieur au deuxième nombre), mettez la décimale dans l'avant et le milieu, et placez le grand au milieu. Une fois les nombres joués, la comparaison se poursuit jusqu'à l'avant-dernier numéro (l'avant-dernière position est déjà la plus grande à la fin du). Au deuxième passage, un nouveau nombre maximum est obtenu à l'avant-dernière position (en fait, dans toute la séquence, le deuxième plus grand nombre). Continuez ainsi et répétez le processus ci-dessus jusqu'à ce que le tri soit enfin terminé. (Apprentissage recommandé : Tutoriel vidéo Java)
Sélectionnez le tri :
Pour la première fois, partez de l'indice 0 et du nombre avec l'indice 0 et comparez les n-1 valeurs suivantes ; trouver la valeur la plus petite ou la plus grande et la placer à la position avec l'indice 0 ; démarrer la deuxième comparaison à partir de l'indice 1 ; interroger la valeur maximale ou minimale restante ; jusqu'à ce que le tri soit terminé
Exemple :
public class MaoPao { public static void main(String[] args) { int arr[]={23,12,46,24,87,65,18,14,43,434,65,76}; int k=0; //冒泡排序 for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-1;j++){ if(arr[j]<arr[j+1]){ int t=arr[j]; arr[j]=arr[j+1]; arr[j+1]=t; k++; } System.out.print("i="+i+"的第j="+j+"次交换\t"); for(int d=0;d<arr.length;d++){ System.out.print(arr[d]+"\t"); } System.out.println(); } } System.out.println("交换的次数为"+k); //选择排序 int l=0; for(int i=0;i<arr.length-1;i++){ for(int j=i+1;j<arr.length-1;j++){ if(arr[i]<arr[j]){ int t=arr[i]; arr[i]=arr[j]; arr[j]=t; l++; } System.out.print("i="+i+"的第j="+j+"次交换\t"); for(int d=0;d<arr.length;d++){ System.out.print(arr[d]+"\t"); } System.out.println(); } } for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+"\t"); } System.out.println("交换的次数为"+l); } }
Il est temps de résumer leurs différences
(1) Le tri à bulles compare deux nombres dans des positions adjacentes, tandis que le tri par sélection compare afin de trouver la valeur maximale ou minimale
(2) Chaque tour de tri à bulles Après comparaison, si la position est erronée, vous devez changer ; la position. Chaque tour de tri par sélection n'a besoin que de changer la position ;
(3) Le tri par bulles consiste à trouver la position à travers des nombres, et le tri par sélection consiste à trouver la position à un nombre donné ; 🎜>
Pour plus d'articles techniques liés à Java, veuillez visiter la colonneTutoriel de développement Java pour apprendre !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!