Home  >  Article  >  Java  >  Java basic sorting example tutorial

Java basic sorting example tutorial

PHP中文网
PHP中文网Original
2017-06-20 16:12:27983browse

Record several java sorting codes that I compiled

public class Index {

public static void main(String[] args) {

int[] a = { 1, 4, 5, 6, 8, 2, 3, 9, 6, };
// selectSort(a);
// bubbleSort(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);
}

}

// select sort, from the following list Select the largest one and put it in front
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;
}

}
}

}

// bubble sort, in the sub-loop, compare and exchange pairs, like bubbling, so that large numbers are placed at the back
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;
}
}

}

}

// insert sort, assuming that the previous ones are in order, in the sub-loop , compare the target element with the previous one, move forward when encountering a larger one, insert it at that position when encountering a smaller one
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--;

}

}

}

// quick sort, similar to the idea of ​​​​half, let the left side of a certain value Less than it, the one on the right is greater than it, and then recurse on both sides
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 sort, similar to selection sort, but with increment, the idea of ​​​​first coarse and then fine (first Sort roughly, then sort carefully)
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;

}
}

}

The above is the detailed content of Java basic sorting example tutorial. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn