首页 > 编程语言 >常用快排算法实现

常用快排算法实现

时间:2024-04-12 15:59:13浏览次数:29  
标签:sort 常用 merge int mid while 快排 算法 quick

快速排序

void quick_sort(int q[], int l, int r)
{
    if (l >= r) return;

    int i = l - 1, j = r + 1, x = q[l + r >> 1];
    while (i < j)
    {
        do i ++ ; while (q[i] < x);
        do j -- ; while (q[j] > x);
        if (i < j) swap(q[i], q[j]);
    }
    quick_sort(q, l, j), quick_sort(q, j + 1, r);
}

归并排序

void merge_sort(int q[], int l, int r)
{
    if (l >= r) return;

    int mid = l + r >> 1;
    merge_sort(q, l, mid);
    merge_sort(q, mid + 1, r);

    int k = 0, i = l, j = mid + 1;
    while (i <= mid && j <= r)
        if (q[i] <= q[j]) tmp[k ++ ] = q[i ++ ];
        else tmp[k ++ ] = q[j ++ ];

    while (i <= mid) tmp[k ++ ] = q[i ++ ];
    while (j <= r) tmp[k ++ ] = q[j ++ ];

    for (i = l, j = 0; i <= r; i ++, j ++ ) q[i] = tmp[j];
}

标签:sort,常用,merge,int,mid,while,快排,算法,quick
From: https://www.cnblogs.com/HuangLiDi/p/18131469

相关文章

  • 几种常用数据结构的C语言实现
    队列/*********************************************************************************@file:myfifo.c*@brief:先入先出队列实现*@author:huanglidi*****************************************************************......
  • lloyd-max 最优标量量化算法分析
    变限积分求导公式假设有函数定义为:\[K(x)=\int_{\phi(x)}^{\Psi(x)}f(t)dt\\\frac{dK(x)}{dx}=f[\Psi(x)]\Psi(x)^{\prime}-f[\phi(x)]\phi(x)^{\prime}\]量化失真与最优标量量化对于N个量化区间的失真定义为:\[D=\sum_{i=1}^{N}(\int_{t_i}^{t_{i+1}}(x-\hat{x_i......
  • Anaconda常用命令
    一、环境1.1创建新环境condacreate-nyour_env_namepython=X.X(2.7\3.6等)1.2查看anaconda环境信息查看已经创建了哪些anaconda环境(星号代表当前环境)condainfo--env1.3激活anaconda环境或解除激活condaactivate/condadeactivate激活某个anaconda环境:con......
  • OR-TOOL 背包算法
    起因:最近公司要发票自动匹配,比如财务输入10000W块,找到发票中能凑10000的。然后可以快速核销。 废话不多, 一官方文档https://developers.google.cn/optimization/pack/knapsack?hl=zh-cn 二POM文件<!--google算法包--><dependency><......
  • 50 Vue3常用扩展插件
    在setup的script标签中去指定组件名字1.安装npmivite-plugin-vue-setup-extend-D2.配置vue.config.tsimport{defineConfig}from'vite'importVueSetupExtendfrom'vite-plugin-vue-setup-extend'exportdefaultdefineConfig({plugins:[VueSe......
  • vi与vim的区别以及常用命令***
       vi与vim的区别以及常用命令发布于 2020-03-2509:54:201.1K0举报文章被收录于专栏:挨踢小子部落阁一、vi与vim的区别1、多级撤消在vi编辑器中,按u只能撤消上次命令,而在vim里可以无限制的撤消。2、易用性vi编辑器只能运行于unix中,而vim不仅可以......
  • 补充:基于项目的协同过滤推荐算法(Item-Based Collaborative Filtering Recommendation
    前言继续上篇博客,继续读论文。想看上篇论文的同学可以点击这里相关工作Inthissectionwebrieflypresentsomeoftheresearchliteraturerelatedtocollaborativefiltering,recommendersystems,dataminingandpersonalization.在本节中,我们简要介绍了一些与协同......
  • 传统Item-Based协同过滤推荐算法改进
    前言今天要读的论文为一篇于2009年10月15日发表在《计算机研究与发展》的一篇会议论文,论文针对只根据相似性无法找到准确可靠的最近邻这个问题,提出了结合项目近部等级与相似性求取最近邻的新方法;此外针对系统中新加入的项目,因为其上评分信息的匾乏,求得的最近邻往往是不准确的,为此......
  • Top-N推荐算法 Top-N recommendation Algorithms
    引言推荐算法是计算机专业中的一种算法,通过一些计算,能够推测用户喜欢的东西,在互联网环境中应用比较广泛。Top-N算法在生活中非常常见,比如学术论文推荐论文、音乐软件推荐歌曲等。今天看到一篇名叫"ARevisitingStudyofAppropriateOfflineEvaluationforTop-NRecommendati......
  • 读论文-基于Python的协同过滤算法的研究与应用实现
    前言今天读的论文为一篇名为《基于Python的协同过滤算法的研究与应用实现》的论文,文章是在2019年9月发表于《电脑知识与技术》的一篇期刊论文。摘要随着科学技术的快速发展和知识产权的日益重要,大多数用户会选择在播放平台上看电影。例如腾讯视频、爱奇艺等,用户迫切需要一个合......