Maison > Java > javaDidacticiel > La différence entre le tri par sélection et le tri à bulles

La différence entre le tri par sélection et le tri à bulles

(*-*)浩
Libérer: 2019-06-05 09:58:12
original
6700 Les gens l'ont consulté

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.

La différence entre le tri par sélection et le tri à bulles

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);
	}
}
Copier après la connexion

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 colonne

Tutoriel 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal