Java數(shù)組排序幾種排序方法詳細一點?
這是平時經常用到的排序方法整理,簡單易懂
快速排序:首先是最簡單的Array.sort,直接進行排序:
public static void main(String[] args) {
int[] arr = {4,3,5,1,7,9,3};
Arrays.sort(arr);
for (int i : arr){
System.out.println(i);
}
點擊運行即可輸出已排序的數(shù)組數(shù)字。
2、部分排序法:使用Array.sort還可進行選擇想要排序的部分數(shù)字,如將下角標編號為1~4的數(shù)字進行排序,其他數(shù)字順序不變。
public static void main(String[] args) {
int[] arr = {4,3,5,1,2,9,3,0};
Arrays.sort(arr,1,4);
for (int i = 0;i<arr.length;i++){
System.out.print(arr[i]+",");
}
}
輸出結果為:4,1,3,5,2,9,3,0, 可見僅下標為1~4的數(shù)字進行了排序。
3、冒泡排序法:顧名思義,從下到上,兩兩進行比較,越小的越往上,從而形成由小到大的排序。
public static void bubble(int[] arr){
int temp;
//根據(jù)角標進行比較,
for(int i = 0; i<arr.length; i++){
//j是數(shù)組的最后一個角標
for (int j = arr.length-1; j > i; j--) {
if (arr[j] < arr[j - 1]) {
//從后往前進行比較,小數(shù)往前,一輪之后最小數(shù)就在最前面了
temp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = temp;
}
}
}
}
public static void main(String[] args) {
int[] arr = {3,22,5,3,66,2,9};
bubble(arr);
//使用foreach循環(huán)輸出
for(int x : arr){
System.out.println(x);
}
//使用字符串表達形式輸出,輸出形式更為直觀
System.out.println(Arrays.toString(arr));
}