以下是我对合并排序算法的实现
private void mergeSort(Integer[] t,int low, int high)
{
if(low<high)
{
int mid=(low+high)/2;
mergeSort(t,low,mid);
mergeSort(t,mid+1,high);
merge(t,low,mid,high);
}
}
private void merge(Integer[] t, int low, int mid, int high){
Integer[] temp = t.clone();
int i=low,j=mid+1,k=low;
while(i<=mid && j<=high)
{
temp[k++] = t[i] < t[j] ? t[i++] : t[j++];
}
while(i<=mid)
temp[k++] = t[i];
while(j<=high)
temp[k++] = t[j];
System.out.println(Arrays.toString(temp));
}
我正在考虑是否可以将其修改为纯函数式样式,例如使用java 8.在某处接近我们在Scala中的操作。