归并排序


 public void mergesort(int[] tmp,int left,int right,int[] arr){
        int mid=(left+right)/2;
        mergesort(tmp,left,mid,arr);
        mergesort(tmp,mid+1,right,arr);
        merge(tmp,left,mid,right,arr);
   }

   public void merge(int[] tmp,int left,int mid,int right,int[] arr){
        int i=left;
        int j=mid+1;
        int t=0;
        while (left<=mid&&j<=right){
            if(arr[i]<arr[j]){
                tmp[t++]=arr[i++];
            }else {
                tmp[t++]=arr[j++];
            }
        }

        while (i<=mid){
            tmp[t++]=arr[i++];
        }
        while (j<=right){
            tmp[t++]=arr[j++];
        }

        t=0;
        while (left<=right){
            arr[left++]=tmp[t++];
        }
   }
全部评论

相关推荐

哞客37422655...:兄弟别慌!💪 民办本找实习确实难点,但不是没机会。100+简历才2个面试,可能简历需要优化下: 项目经历写具体点,突出测试用例、bug数量等 技能栏把测试工具/方法论写清楚 可以考虑降低预期,先进小厂积累经验 测试岗相对好进,坚持投!现在才半个月,有人投3个月才上岸的😭 加油,offer在路上了🚀
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务