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

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

王林
王林nach vorne
2023-04-20 12:55:12687Durchsuche

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));
        }
     
        }
	}
:

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));
        }
    }
}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen