合并排序
来源:互联网 发布:office2010卸载软件 编辑:程序博客网 时间:2024/06/06 03:27
import java.util.Scanner;
//import java.util.ArrayList;
class MergeSort {
public static void main(String args []){
int[] a=new int[10];
System.out.println("请输入十个数");
Scanner sc=new Scanner(System.in);
// int m=sc.nextInt();
for(int i=0;i<10;i++){
a[i]=sc.nextInt();
}
// for(int i=0;i<10;i++){
// System.out.println(a[i]);
// }
MergeSort(a,0,9);
for(int i=0;i<10;i++){
System.out.print(a[i]+" ");
}
sc.close();
}
public static void MergeSort(int[] array, int low, int high)
{
if (low >= high)
return;
int middle = (low + high) / 2;
MergeSort(array, low, middle);
MergeSort(array, middle + 1, high);
Merge(array, low, middle, high);
// System.out.print("array=");
// for(int i=0;i<10;i++){
// System.out.print(array[i]+" ");
// }
// System.out.println();
}
private static void Merge(int[] array, int low, int middle, int high)
{
int length = high - low + 1;
int LowToMiddle = low;
int MiddleToHigh = middle + 1;
int[] tempArray = new int[length];
int temp = 0;
while (LowToMiddle <= middle && MiddleToHigh <= high)
{
if (array[LowToMiddle] <= array[MiddleToHigh])
{
tempArray[temp] = array[LowToMiddle];
LowToMiddle += 1;
}
else
{
tempArray[temp] = array[MiddleToHigh];
MiddleToHigh += 1;
}
temp += 1;
}
if (LowToMiddle == middle + 1)
{
System.arraycopy(
array, MiddleToHigh, tempArray, temp, length - temp);
}
else
{
System.arraycopy(
array, LowToMiddle, tempArray, temp, length - temp);
}
System.arraycopy(tempArray, 0, array, low, length);
}
}
//import java.util.ArrayList;
class MergeSort {
public static void main(String args []){
int[] a=new int[10];
System.out.println("请输入十个数");
Scanner sc=new Scanner(System.in);
// int m=sc.nextInt();
for(int i=0;i<10;i++){
a[i]=sc.nextInt();
}
// for(int i=0;i<10;i++){
// System.out.println(a[i]);
// }
MergeSort(a,0,9);
for(int i=0;i<10;i++){
System.out.print(a[i]+" ");
}
sc.close();
}
public static void MergeSort(int[] array, int low, int high)
{
if (low >= high)
return;
int middle = (low + high) / 2;
MergeSort(array, low, middle);
MergeSort(array, middle + 1, high);
Merge(array, low, middle, high);
// System.out.print("array=");
// for(int i=0;i<10;i++){
// System.out.print(array[i]+" ");
// }
// System.out.println();
}
private static void Merge(int[] array, int low, int middle, int high)
{
int length = high - low + 1;
int LowToMiddle = low;
int MiddleToHigh = middle + 1;
int[] tempArray = new int[length];
int temp = 0;
while (LowToMiddle <= middle && MiddleToHigh <= high)
{
if (array[LowToMiddle] <= array[MiddleToHigh])
{
tempArray[temp] = array[LowToMiddle];
LowToMiddle += 1;
}
else
{
tempArray[temp] = array[MiddleToHigh];
MiddleToHigh += 1;
}
temp += 1;
}
if (LowToMiddle == middle + 1)
{
System.arraycopy(
array, MiddleToHigh, tempArray, temp, length - temp);
}
else
{
System.arraycopy(
array, LowToMiddle, tempArray, temp, length - temp);
}
System.arraycopy(tempArray, 0, array, low, length);
}
}
0 0
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 合并排序
- 快速排序算法
- gSOAP嵌入式linux下的移植与程序开发
- 【static】----static关键字--内存中简单过程
- Go语言中的工程管理
- EasyDarwin EasyCamera支持海康摄像机接入了
- 合并排序
- static,extern详细用法
- 安装Rational Rose 2007并破解后,开启Rose 报出异常"java.lang.ClassNotFoundException" 但是并不影响使用!
- DS1302地址
- HDU1598【最小生成树拓展】
- HastSet用法
- 关于我
- 报告老板:“这镜子已成精”
- css布局之流动布局(腾讯软件首页案例)