Heim > Java > javaLernprogramm > Hauptteil

So schreiben Sie Code zum Implementieren der Blasensortierung und Auswahlsortierung in Java

王林
Freigeben: 2023-04-20 12:55:12
nach vorne
656 Leute haben es durchsucht

1. Blasensortierung

Die Grundidee der Blasensortierung besteht darin, die

Reihenfolge von vorne nach hinten zu behandeln (beginnend mit dem Element mit dem kleineren Index) und die Werte benachbarter Elemente zu vergleichen Wenn die umgekehrte Reihenfolge gefunden wird, werden die Elemente ausgetauscht, sodass sich die Elemente mit größeren Werten allmählich von vorne nach hinten bewegen, genau wie Blasen unter Wasser, und allmählich aufsteigen.

Denn während des Sortiervorgangs nähert sich jedes Element ständig seiner eigenen Position. Wenn bei einem Vergleich kein Austausch durchgeführt wurde, bedeutet dies, dass die Reihenfolge in Ordnung ist.

Veranschaulichung des Prozesses des Blasensortierungsalgorithmus

Ursprüngliches Array: 3, 9, -1, 10, 20

Erster Sortierdurchgang

(1) 3, 9, -1, 10 , 20 // Wenn benachbarte Elemente in umgekehrter Reihenfolge sind, vertauschen Sie sie


(2) 3, -1, 9, 10, 20


(3) 3, -1, 9, 10, 20


( 4) 3 , -1, 9, 10, 20

Zweite Sortierung

(1) -1, 3, 9, 10, 20 //Austausch


(2) -1, 3, 9, 10 , 20


(3) -1, 3, 9, 10, 20

Die dritte Sortierung

(1) -1, 3, 9, 10, 20


(2) -1 , 3, 9, 10, 20

Der vierte Sortierdurchgang

(1) -1, 3, 9, 10, 20

Zusammenfassung der Blasensortierregel

(1) A Gesamtzahl der Arrays Die Größe von - 1 großer Schleife


(2) Die Häufigkeit jeder Sortierung nimmt allmählich ab


(3) Wenn wir feststellen, dass bei einer bestimmten Sortierreise kein Austausch stattfindet, können wir die Blase beenden früh sortieren. Dies ist das laufende Ergebnis der Optimierung

import java.util.Arrays;
public class BubbleSort {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        int arr[]= {3,9,-1,10,-2};
        //第i+1趟排序,将最大的数排在最后
        int temp=0;//临时变量
        for(int i=0;i<arr.length-1;i++) {//定义第几轮排序
       	 for(int j=0;j<arr.length-1-i;j++) {
       		 if(arr[j+1]<arr[j]) {
       		  temp=arr[j];
       		 arr[j]=arr[j+1];
       		 arr[j+1]=temp;
       		 }
       		 }
        System.out.println("输出第"+(i+1)+"趟排序的结果");
        System.out.println(Arrays.toString(arr));
        }
     
        }
	}
Nach dem Login kopieren
:

Geben Sie die Ergebnisse der ersten Sortierung aus

[3, -1, 9, -2, 10]
Geben Sie die Ergebnisse der zweiten Sortierung aus
[-1, 3, - 2 , 9, 10]
Das Ergebnis der dritten Sortierung ausgeben
[-1, -2, 3, 9, 10]
Das Ergebnis der vierten Sortierung ausgeben
[-2, -1, 3, 9, 10]

2. Auswahlsortiermethode

Sortieridee:

Ursprüngliches Array: 101, 34, 119, 1


Erste Sortierrunde: 1, 34, 119, 101


Zweite Sortierrunde: 1, 34, 119, 101


Die dritte Sortierrunde: 1, 34, 101, 119

Anweisungen:

1. Die gesamte Array-Größe der Auswahlsortierung – 1 Sortierrunde

2 1 Sortierrunde, eine weitere Schleife, die Regeln (Code) der Schleife

  • 2.1 Nehmen Sie zunächst an, dass die aktuelle Zahl die kleinste Zahl ist

  • 2.2 Vergleichen Sie sie dann mit jeder nachfolgenden Zahl, falls dort etwas gefunden wird eine kleinere Zahl als die aktuelle Zahl ist, bestimmen Sie die Mindestzahl neu und erhalten Sie den Index

  • 2.3 Beim Durchlaufen bis zum Ende des Arrays erhalten Sie die Mindestzahl und den Index dieser Runde

  • 2.4 Austausch [weiter im Code]

import java.util.Arrays;
public class QuickSort {
    public static void main(String[] args) {
       //int []arr={ 8,3,2,1,7,4,6,5};
       int [] arr={101,34,109,1};
       quicksort(arr);
    }
    public static void quicksort(int []arr){
        for(int j=0;j<arr.length-1;j++) {
            int minindex=j;//假定当前下标为最小值下标
            int minnumber=arr[j];//假定当前元素为最小值
            for (int i = 1+j; i < arr.length; i++) {
                if (arr[i] < minnumber) {//若假定最小值并不是最小的
                    minnumber = arr[i];//重置minnumber
                    minindex = i;//重置minindex
                }
            }
            //将最小值交换
            arr[minindex] = arr[j];
            arr[j] = minnumber;
            System.out.println("第"+(j+1)+"轮");
            System.out.println(Arrays.toString(arr));
        }
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo schreiben Sie Code zum Implementieren der Blasensortierung und Auswahlsortierung in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage