Java 迭代歸併排序的程式
以下是用於迭代歸併排序的 Java 程式 -
示例
import java.util.Arrays;
public class Demo{
public static void merge_sort(int[] my_arr){
if(my_arr == null){
return;
}
if(my_arr.length > 1){
int mid = my_arr.length / 2;
int[] left = new int[mid];
for(int i = 0; i < mid; i++){
left[i] = my_arr[i];
}
int[] right = new int[my_arr.length - mid];
for(int i = mid; i < my_arr.length; i++){
right[i - mid] = my_arr[i];
}
merge_sort(left);
merge_sort(right);
int i = 0;
int j = 0;
int k = 0;
while(i < left.length && j < right.length){
if(left[i] < right[j]){
my_arr[k] = left[i];
i++;
} else {
my_arr[k] = right[j];
j++;
}
k++;
}
while(i < left.length){
my_arr[k] = left[i];
i++;
k++;
}
while(j < right.length){
my_arr[k] = right[j];
j++;
k++;
}
}
}
public static void main(String[] args){
int my_arr[] = {56, 78, 91, 21, 34, 0, 11};
int i=0;
merge_sort(my_arr);
System.out.println("The array after sorting is ");
for(i=0; i<my_arr.length; i++)
System.out.print(my_arr[i]+" ");
}
}輸出
The array after sorting is 0 11 21 34 56 78 91
一個名為 Demo 的類包含“merge_sort”函式,該函式檢查陣列是否為空,若為空,則不返回任何內容。如果陣列的長度大於 1,則計算“mid”的值,並且陣列被迭代到“mid”值。基本上,陣列被分成相等的兩部分,陣列左邊的元素被放入一個新陣列,陣列右邊的元素被放入另一個數組。現在,這些陣列被分開並排序。然後將它們合併在一起。
在主函式中,為陣列定義了函式,並在這個陣列元素上呼叫該函式。輸出顯示在控制檯上。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP