import java.text.SimpleDateFormat;
import java.util.Date;
public class MergeSort {
public static void main(String[] args) {
int[] array = new int[100000000];
for (int i = 0; i < 100000000; i++) {
array[i] = (int) (Math.random() * 2140000000);
}
int[] temp = new int[array.length];
Date startDate = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("start :" + simpleDateFormat.format(startDate));
mergeSort(array, 0, array.length - 1, temp);
Date endDate = new Date();
System.out.println("end :" + simpleDateFormat.format(endDate));
}
public static void mergeSort(int[] array, int left, int right, int temp[]) {
if (left < right) {
int mid = (left + right) / 2;
mergeSort(array, left, mid, temp);
mergeSort(array, mid + 1, right, temp);
merge(array, left, mid, right, temp);
}
}
public static void merge(int[] array, int left, int mid, int right, int[] temp) {
int i = left;
int j = mid + 1;
int t = 0;
while (i <= mid && j <= right) {
if (array[i] < array[j]) {
temp[t++] = array[i++];
} else {
temp[t++] = array[j++];
}
}
while (i <= mid) {
temp[t++] = array[i++];
}
while (j <= right) {
temp[t++] = array[j++];
}
t = 0;
int index = left;
while (index <= right) {
array[index++] = temp[t++];
}
}
}
测试归并排序对一亿个数据进行排序花费的时间
最新推荐文章于 2023-02-02 17:55:15 发布