再次学习[Java] 纯文本查看 复制代码 public class Main {
static int [] temp;
public static void main(String[] args) {
int [] arr = {1,3,5,2,4,8,6,7};
int n = arr.length;
temp = new int[n];
sort(arr,0,n-1);
for (int i : arr) {
System.out.print(i+" ");
}
}
private static void sort(int[] nums, int l, int r) {
//判断边界
if (l>=r){
return ;
}
//拿到中间值
int mid = (l+r)>>1;
//进行递归
sort(nums,l,mid);
sort(nums,mid+1,r);
//如果不是有序的才进行计算
if (nums[mid]>nums[mid+1]) {
merge(nums, l, mid, r);
}
}
private static void merge(int[] arr, int l, int mid, int r) {
//打个备份
System.arraycopy(arr,l,temp,l,r-l+1);
//两个哨兵
int i = l, j = mid+1;
for(int k = l;k<=r;k++) {
//左边超边界
if (i > mid){
arr[k] = temp[j++];
}else if (j>r){
//右边超边界
arr[k] = temp[i++];
}else if (temp[i]<=temp[j]){
//左边小于右边,直接拿左边的
arr[k] = temp[i++];
}else {
//否则拿右边的
arr[k] = temp[j++];
}
}
}
} 理解总结了一遍
在新标签打开所有链接复制所有链接URL复制所有链接URL(反向)复制所有链接标题 + URL复制所有链接标题 + URL (MD)复制所有链接标题 + URL (BBS)复制所有链接标题 + URL (筛选)复制所有链接标题 + URL (设置复制格式)在新标签页打开所有图片链接在一个标签页显示所有图片链接
复选框 - 选中
复选框 - 取消
复选框 - 反选
单选框 - 选中
单选框 - 取消
特殊单选框 - 选中 |