Zeichnen Sie mehrere von mir kompilierte Java-Sortiercodes auf
public class Index {
public static void main(String[] args) {
int[] a = { 1, 4, 5, 6, 8, 2, 3, 9, 6, };
// selectSort(a);
// bubleSort(a);
/ / insertSort(a);
// quickSort(a, 0, a.length - 1);
// quickSort(a, 0, a.length - 1);
shellSort(a) ;
for (int b : a) {
System.out.println(b);
}
}
// sort auswählen, aus der folgenden Liste auswählen das größte und stelle es voran
public static void selectSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] < arr[j]) {
int tem = arr[ j];
arr[j] = arr[i];
arr[i] = tem;
}
}
}
}
// Blasensortierung, in der Unterschleife Paare vergleichen und austauschen, wie beim Blasen, sodass große Zahlen hinten platziert werden
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int tem = arr[j + 1];
arr[j + 1] = arr[j];
arr [j] = tem;
}
}
}
}
// Sortierung einfügen, vorausgesetzt, die vorherigen sind in der richtigen Reihenfolge, in die Unterschleife, vergleichen Sie das Zielelement mit dem vorherigen, bewegen Sie sich vorwärts, wenn Sie auf ein größeres stoßen, fügen Sie es an dieser Position ein, wenn Sie auf ein kleineres stoßen
public static void insertSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int j = i;
int temp = arr[i];
while (j > 0 ) {
if (temp < arr[j - 1]) {
arr[j] = arr[j - 1];
arr[j - 1] = temp ;
}
j--;
}
}
}
// schnelle Sortierung, ähnlich der Idee von Die Hälfte, die linke Seite eines bestimmten Werts sei kleiner als dieser, die rechte Seite größer als dieser und dann rekursiv auf beiden Seiten
public static void quickSort(int[] arr, int low, int high) {
int start = low;
int end = high;
int key = arr[start];
while (end > start) {
while (end > start && arr[end] >= key) {
end --;
}
if (arr[end] <= key) {
int tem = arr[end];
arr[end] = arr[start];
arr [start] = tem;
}
while (start < end && arr[start] <= key ) {
start++;
}
if (arr[start] > = key) {
int tem = arr[start];
arr[start] = arr[end];
arr[end] = tem;
}
}
if (start > low) {
quickSort(arr, low, start - 1);
}
if (end < high) {
quickSort( arr, end + 1, high);
}
}
// Shell-Sortierung, ähnlich der Auswahlsortierung, aber mit Inkrementierung, die Idee, zuerst grob und dann fein zu sortieren (zuerst grob sortieren, dann sorgfältig sortieren)
public static void shellSort(int[] arr) {
int d = arr.length / 2;
while (d >= 1) {
for (int i = 0; i < arr.length; i++) {
for (int j = i; j < arr.length - d; j = j + d) {
if (arr [j] > arr[j + d]) {
int tem = arr[j];
arr[j] = arr[j + d];
arr[j + d] = tem ;
}
}
}
d = d / 2;
}
}
}
Das obige ist der detaillierte Inhalt vonBeispiel-Tutorial für die grundlegende Java-Sortierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!