首页 > 编程语言 >c#归并排序

c#归并排序

时间:2023-05-03 10:12:28浏览次数:36  
标签:归并 right c# arr mid int MergeSortSub 排序 left

void MergeSort(int[] arr)
{
    int l = 0;
    int r = arr.Length-1;
    MergeSortSub(arr,l,r);
}
// 1,2
void MergeSortSub(int[] arr,int left,int right)
{
    if(left == right) return;
    int mid = left + ((right - left) >> 1);
    MergeSortSub(arr, left, mid);
    MergeSortSub(arr, mid+1, right);
    Merge(arr,left,mid,right);
}
// right也要传
void Merge(int[] arr,int left,int mid,int right){
    int[] help = new int[right-left+1];//*
    int i=0;
    int p1 = left;
    int p2 = mid+1;
    while(p1 <= mid && p2 <= right)
    {
        help[i++] = arr[p1] <= arr[p2] ? arr[p1++] : arr[p2++];
    }
    while(p1 <= mid)
    {
        help[i++] = arr[p1++];
    }
    while(p2 <= right)
    {
        help[i++] = arr[p2++];
    }
    for ( i = 0; i < help.Length; i++)
    {
        arr[left+i] = help[i]; // **
    }
}

 

标签:归并,right,c#,arr,mid,int,MergeSortSub,排序,left
From: https://www.cnblogs.com/Insist-Y/p/17368717.html

相关文章

  • VS2022使用ClickOnce发布程序本地安装.net框架
    因为遇到下面的错误,没有在网上搜到详细解决问题的教程,费了一些时间才解决了问题,特此记录一下,也希望能帮助到其他人。 要在“系统必备”对话框中启用“从与我的应用程序相同的位置下载系统必备组件”,必须将“.NET桌面运行时6.0.14(x64)”项的文件“net6desktopruntime_x64\win......
  • docker搭建本地私有仓库详细步骤
    1、首先下载registry镜像dockerpullregistry12、在daemon.json文件中添加私有镜像仓库的地址并重启vim/etc/docker/daemon.json{ "insecure-registries":["192.168.59.111:5000"],#添加此段,“,”不可少,ip是本机IP地址 "registry-mirrors":["https://4abdkxlk.mi......
  • docker的资源控制管理——Cgroups
    前言docker使用cgrqup控制资源,K8S里面也有limit(使用上限)docker通过cgroup来控制容器使用的资源配额,包括CPU、内存、磁盘三大方面,基本覆盖了常见的资源配额和使用量控制。Cgroup是Controlgroup的简写,是Linux内核提供的一种限制所使用物理资源的机制,包括CPU、内存......
  • .NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、
    通过前面三篇:.NETCore部署到linux(CentOS)最全解决方案,常规篇.NETCore部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx).NETCore部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx或Jexus)通过前面三篇文章的介绍,我们已经对.netcore多方案部署到linux下有......
  • React 中 Router的相关面试题
    一、请你说说react的路由是什么?React的路由是纯前端的路由,就是根据hash或browserpath的变化,框架内封装好了方法,可以自由的切换DOM展示,来模拟页面或局部页面被替换的目的;让浏览器不用刷新,也能获取想要的页面结构,保存内存数据,提升用户体验 二、React-Router实现原理?当url发......
  • .NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、
    通过前面三篇:.NETCore部署到linux(CentOS)最全解决方案,常规篇.NETCore部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx).NETCore部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx或Jexus)通过前面三篇文章的介绍,我们已经对.netcore多方案部署到linux下有......
  • security中登录失败后没有走登录失败拦截器
    在进行security做用户登录时,会创建一系列的拦截器和过滤器,在进行用户校验时,我这边采用的是继承UsernamePasswordAuthenticationFilter,然后重写其中的attemptAuthentication和successfulAuthentication方法,但是在校验失败后,没有走校验失败拦截器。publicclassJwtAuthentication......
  • .NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、
    通过前面三篇:.NETCore部署到linux(CentOS)最全解决方案,常规篇.NETCore部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx).NETCore部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx或Jexus)通过前面三篇文章的介绍,我们已经对.netcore多方案部署到linux下有......
  • python-docx的简单使用
    '''设置表格所有单元格的四个边为0.5磅,黑色,实线可以使用返回值,也可以不使用'''def设置表格网格线为黑色实线(table_object:object):kwargs={"top":{"sz":4,"val":"single","color":"#000000"},......
  • CHC5054 网络应用开发
    WebApplicationDevelopment:CourseworkAllocationThiscourseworkisworth100%ofthemarksformoduleCHC5054.Youwillalsoneedskillsfromthefollowingmodules:●CHC4008(PythonProgramming)●CHC4007(Designreporting)●CHC5049(Databasedesign)●CHC5......