排序专题

C/C++ 排序专题 排序专题 3238.字串非重复字符数排序 对 个由大写字母组成的长度为 的字符串,按字符串中不同字符个数从多到少的顺序进行排序。不同字符个数相同的字符串按字符串的字典序排序。 例如:ABCCBA 和 CDFE 按照 CDFE ,ABCCBA 顺序排序,因为 ABCCBA 的不同字符个数是 个,CDFE是 个。ABCCBAX 和 CDFE 按照 ABCCBAX, CDFE 顺序排序,因为这两个字符串的不同字符个数都是 个,而 ABCCBAX 的字典序小于 CDFE。 #include <ios 阅读详情

一. 快速排序

快排基于分治思想,几乎是最快的排序方式,被评为20世纪是十大算法之一。

1.1 快排的Java代码实现

    //快排
    public void quickSort(int data[],int start,int end){
        if(start<end){
            int partition=partition(data,start,end);
            quickSort(data,0, partition-1);
            quickSort(data,partition+1, end);
        }
    }
    //确定pivot
    public int partition(int data[],int start,int end){
        int pivot=data[start];
        int left=start+1;
        int right=end;
        while(left<=right){
            while(left<=right&&data[left]<=pivot){
                left++;
            }
            while(left<=right&&data[right]>pivot){
                right--;
            }
            if(left<right){
                swap(data,left,right);
            }
        }
        swap(data, start, right);
        return right;
    }
    //数据交换
    public void swap(int[] data, int x, int y) {
        int temp=data[x];
        data[x]=data[y];
        data[y]=temp;
    }

1.2 快排的复杂度分析

  • 平均时间– O(nlog2n)
    快排在平均情况下的时间复杂度比较难算,记住就行了。

  • 最好时间– O(nlog2n)
    最好情况下,每次找到的pivot点应该是N2的位置。
    所以:

    • 可以推测比较序列的次数为:
      f(1)≈0
      f(n)≈n−1+2×f(n/2)
      ≈n−1+2×(n/2−1)+4×f(n/4)
      ≈n−1+2×(n/2−1)+4×(n/4−1)+8×f(n/8)
      ≈nlog2n−n
      ≈O(nlog2n)
  • 最坏时间– O(n2)
    首先明确快排的最坏情况是:原序列有序。

    • 假设:数组为data[]={1,2,3,4,5,6}
    • 则分割序列为:
      {1},{2,3,4,5,6}
      {1},{2}{3,4,5,6}
      {1},{2}{3}{4,5,6}
      {1},{2}{3}{4}{5,6}
      {1},{2}{3}{4}{5}{6}
    • 很容易得到比较次数为:
      n−1+n−2+⋯+1=n2−n2=O(nlogn)
  • 空间复杂度–平均条件下–O(logn)
    同时间复杂度一样,求解过程较为麻烦,记住结论就好了

  • 空间复杂度–最好条件下–O(logn)
    最好条件下,每次取中值递归,递归树深度为log2n。其空间复杂度也就为O(logn)

  • 空间复杂度–最坏条件下–O(n)
    最坏情况,需要进行n‐1递归调用,其递归树是一棵斜树,深度为n,其空间复杂度为O(n)

1.3 快排的稳定性分析

  • 稳定性:不稳定
    由于关键字的比较和交换是跳跃进行的,因此,快速排序是一种不稳定的排序方法。

二. 归并排序

归并排序也是基于分治法的思想,速度和快排差不多,不过空间占用稍大,具有稳定性。

1.1 归并排序的Java代码实现

    //归并排序
    public void mergeSort(int[] data,int start,int end){
        if(start<end){
            int mid=(start+end)/2;
            mergeSort(data, start, mid);
            mergeSort(data, mid+1, end);
            mergeChild(data, start, mid, end);
        }
    }
    //合并左右孩子
    public void mergeChild(int []data,int start,int mid,int end){
        int len=end-start+1;
        int []temp=new int[len];
        int left=start,right=mid+1;
        for(int i=0;i<len;i++){
            if(left>mid){
                temp[i]=data[right++];
                continue;
            }
            if(right>end){
                temp[i]=data[left++];
                continue;
            }
            if(data[left]<=data[right]){
                temp[i]=data[left++];
            }else{
                temp[i]=data[right++];
            }
        }
        for(int i=0;i<len;i++){
            data[start+i]=temp[i];
        }
    }

1.2 归并排序的复杂度分析

  • 平均时间– O(nlog2n)
    归并排序中,每一次的mid点都是end−start2,所以:

    • 可以推测比较序列的次数为:
      f(1)≈0
      f(n)≈2n+2×f(n/2)
      ≈2n+2n+4×f(n/4)
      ≈2n+2n+2n+8×f(n/8)
      ≈2n×log2n
      ≈O(nlog2n)
  • 最好时间– O(nlog2n)
    最好情况和平均情况一样,每次的mid点都是end−start2,所以,最好情况和平均情况一样,都是O(nlog2n)

  • 最坏时间– O(nlog2n)
    最坏情况和平均情况一样,每次的mid点都是end−start2,所以,最坏情况和平均情况一样,都是O(nlog2n)

  • 空间复杂度–平均条件下–O(n)
    关于平均条件下的空间复杂度,书上说的是O(n),但是它把mergeChild函数里申请的临时变量int []temp也算进去了,应该是在递归外层申请了一个大小为n的数组,这样一来,空间复杂度就变成了n+log2n,也就是O(n)。但是我上面的代码,把这个临时变量写到了mergeChild中,函数执行完毕自动回收,也就不算是空间占用了,此时的空间复杂度和快排的一样,都是O(logn)。不过我看网上都是说的O(n),我这里也写成O(n)了。也许我的理解有误,还请知道的指点一下,谢谢。

  • 空间复杂度–最好条件下–O(n)
    同上,是O(n)。

  • 空间复杂度–最坏条件下–O(n)
    同上,是O(n)。

1.3 归并排序的稳定性分析

  • 稳定性:稳定
    因为归并排序并没有涉及到跳跃着排序,因此,归并排序是一种稳定的排序方法。

三. 冒泡排序

冒泡排序理解起来较为简单。具有稳定性。时间复杂度较高,空间复杂度较低。了解一下吧。

1.1 冒泡排序的Java代码实现

    public void bubbing(int[] data){
        int len=data.length;
        for(int i=0;i<len;i++){
            int tag=0;
            for(int j=0;j<len-i-1;j++){
                if(data[j]>data[j+1]){
                    tag=1;
                    int temp=data[j];
                    data[j]=data[j+1];
                    data[j+1]=temp;
                }
            }
            if(tag==0)return;
        }
    }

1.2 冒泡排序的复杂度分析

  • 平均时间– O(n2)
    乱序排列的复杂度。

  • 最好时间– O(n)
    顺序排列的复杂度。

  • 最坏时间– O(n2)
    逆序排列的复杂度。
  • 空间复杂度–平均条件下–O(1)

  • 空间复杂度–最好条件下–O(1)

  • 空间复杂度–最坏条件下–O(1)

1.3 冒泡排序的稳定性分析

  • 稳定性:稳定
    因为冒泡排序并没有涉及到跳跃着排序,因此,冒泡排序是一种稳定的排序方法。

四. 堆排序

堆排序利用最大(小)堆的性质进行排序。使用最大堆时,先构建一棵最大堆,然后不断取顶部节点,得到的序列就是有序的。
最大堆是一棵所有根节点都大于子节点的完全二叉树;最大堆的最大元素是顶部根节点,第二大是根节点的两个子节点的其中的一个,第三大不确定,有可能是根节点的子节点的另外一个,也可能是子节点中较大的节点的子节点中的一个。最小堆同理。

1.1 堆排序的Java代码实现

    //堆排序
    public void heapSort(int[] data) {
        if(data==null||data.length==0)return;
        int n=data.length;
        buildMaxHeap(data);
        for(int i=0;i<n;i++){
            swap(data, 0, n-i-1);
            shiftDown(data, 0, n-i-1);
        }
    }
    //构建最大堆
    public void buildMaxHeap(int[] data){
        int n=data.length;
        int x=n/2-1;
        for(int i=x;i>=0;i--){
            shiftDown(data, i, n);
        }
    }
    //下筛
    public void shiftDown(int []data,int x,int n){
        int l=2*x+1,r=2*x+2;
        int max=x;
        if(l<n&&data[l]>data[max])max=l;
        if(r<n&&data[r]>data[max])max=r;
        if(max!=x){
            swap(data, max, x);
            shiftDown(data, max, n);
        }
    }
    //数据交换
    public void swap(int[] data,int x,int y){
        int temp=data[x];
        data[x]=data[y];
        data[y]=temp;
    }

1.2 堆排序的复杂度分析

  • 平均时间– O(nlogn)

最大堆构建的时间复杂度为O(n),下筛的时候,总共n-1次循环,一次下筛的复杂度为O(log2n)(具有n个节点的二叉树最高为log2n+1)。所以总的复杂度为O(nlogn)

  • 最好时间– O(nlogn)

  • 最坏时间– O(nlogn)

  • 空间复杂度–平均条件下–O(1)

只需要一个临时变量,所以为O(1)

  • 空间复杂度–最好条件下–O(1)

  • 空间复杂度–最坏条件下–O(1)

1.3 堆排序的稳定性分析

  • 稳定性:不稳定
    因为堆排序涉及到跳跃着排序,因此,堆排序是一种不稳定的排序方法。

三. 希尔排序

希尔排序是直接插入排序的改进,复杂度可以降到O(n^1.3).
主要流程是:
1. 初始化增量d=n/2
2. 分别对d个数列进行插入排序
3. d=d/2,然后执行步骤2.

1.1 希尔排序的Java代码实现

public void shellSort(int[]data){
        if(data==null||data.length==0)return;
        int n=data.length;
        int d=n/2;
        while(d>=1){
            for(int k=0;k<d;k++){
                for(int i=k+d;i<n;i+=d){
                    int temp=data[i];
                    int j=i-d;
                    while(j>=k&&data[j]>temp){
                        data[j+d]=data[j];
                        j-=d;
                    }
                    data[j+d]=temp;
                }
            }
            d=d/2;
        }
    }

1.2 希尔排序的复杂度分析

  • 平均时间– O(n1.3)
  • 最好时间– O(n1.3)
  • 最坏时间– O(n1.3)

  • 空间复杂度–平均条件下–O(1)

  • 空间复杂度–最好条件下–O(1)

  • 空间复杂度–最坏条件下–O(1)

1.3 希尔排序的稳定性分析

  • 稳定性:不稳定
    希尔排序不稳定

最后,总结一下各个排序方法的复杂度和稳定性:

排序算法最好情形(时间 ~ 空间)平均情形(时间 ~ 空间)最坏情形(时间 ~ 空间)稳定性
快速排序O(nlogn)~O(logn)O(nlogn)~O(logn)O(n2)~O(n)不稳定
归并排序O(nlogn)~O(logn)O(nlogn)~O(logn)O(nlogn)~O(n)稳定
冒泡排序O(n2)~O(1)O(n2)~O(1)O(n)~O(1)稳定
堆排序O(nlogn)~O(1)O(nlogn)~O(1)O(nlogn)~O(1)稳定
希尔排序O(n1.3)~O(1)O(n1.3)~O(1)O(n1.3)~O(1)不稳定

四. KMP算法

KMP算法是字符串匹配的高效算法,朴素的匹配算法的时间复杂度为O(n∗m) ,KMP匹配算法的时间复杂度可以达到O(n+m) ,当m很小n很大时,这个复杂度可以逼近O(n),是一个很巧妙的算法。

1.1 KMP算法的Java代码实现


//根据计算得到的next数组进行模式字符串的查找。
    public int matcher(String t,String p){
        if(t==null||p==null)return -1;
        int [] next = next(p);
        int tLen=t.length();
        int pLen=p.length();
        for(int i=0,j=0;i<tLen;i++){
            while (j>0&&t.charAt(i)!=p.charAt(j)){
                j=next[j-1];
            }
            if(t.charAt(i)==p.charAt(j)){
                j++;
            }
            if(j==pLen){
                return i-j+1;
            }
        }
        return -1;
    }
//计算next数组
    public int[] next(String p){
        int n=p.length();
        int [] next=new int[n];
        next[0]=0;
        for(int i=1;i<n;i++){
            int k=next[i-1];
            while (k>0&&p.charAt(k)!=p.charAt(i)){
                k=next[k-1];
            }
            if(p.charAt(k)==p.charAt(i)){
                k++;
            }
            next[i]=k;
        }
        return next;
    }

1.2 KMP算法时间复杂度

KMP匹配算法的时间复杂度可以达到O(n+m) ,当m很小n很大时,这个复杂度可以逼近O(n),是一个很巧妙的算法。


【智能制造】- APS系列|05 APS 排产的五大底层算法逻辑 很多人误以为APS只是给生产工单排先后顺序,实则整套系统依托成熟算法体系,完成多维度约束下的最优生产决策在制造业数字化排产普及的当下,依旧有不少制造管理者对APS存在认知误区,将其等同于简易工单排序工具。事实上,专业级高级计划与排程系统,早已脱离单纯按时间排序的基础功能,而是依托一整套成熟完善的底层算法逻辑,整合现场各类生产限制条件,在海量变量中自动推演、筛选、输出最贴合企业经营目标的生产方案。 阅读详情

相关推荐

Computer Networks 和 Computer & Security投稿经验

论文投稿

qq_50604294的博客 9234

【刷题基础知识】-排序专题

排序排序算法时间复杂度总览冒泡排序基本思想代码选择排序基本思想代码 参考自十大经典排序算法(动图演示)和www.acwing.com,花花酱,再加上自己的一些理解 排序算法时间复杂度总览 冒泡排序 基本思想 从前到后,两两元素进行比较,前一个比后一个大则进行交换 第一轮遍历后最后一个元素是最大的元素,第二轮遍历后会将倒数第二大的元素移动到倒数第二个位置上,不断重复遍历该组元素就会将元素按照升序进行排列 代码 基础代码: /* 这种写法的冒泡排序的时间复杂度一定是O(n^2)了 */ #include &

weixin_44944046的博客 1062

Ubuntu 20.04 server 安装

Ubuntu 20.04 server 安装 前面我们介绍了 Ubuntu Desktop 版本的安装,今天我们来看看 Ubuntu server 版本的安装。Ubuntu Server 版本的安装和 Desktop 有很大的区别,并且全程不能使用鼠标,只能通过键盘。 从光盘或 U 盘启动到 Welcome 界面,选择语言,一般都是使用 English,所以保保持默认,直接按回车即可; 系统检测到了新的版本,问你是否是否更新,这里我们不需要安装新的版本,所以选项 Continue without upda

as900的博客 1万+

《排序》专题

关于拓扑排序,请参考http://www.cnblogs.com/qilinart2/articles/3872376.html 转载于:https://www.cnblogs.com/pixiuart/p/5980463.html

weixin_33936401的博客 107

AI大模型开发——transformer模型超全完整版(0基础可懂)

为了更深入的了解transformer模型,我们首先从transformer的诞生聊起吧。transformer在2017年由Vaswani等人首次提出,它摒弃了之前流行的循环神经网络和卷积神经网络的架构,引入了自注意力机制( Self-Attention),显著提高了处理序列数据的能力和效率。transformer模型的这种设计使其在处理长距离依赖问题时, 相比于传统的循环神经网络和长短期记忆网络(LSTM)表现得更加出色,至此, 开启了NLP技术的新篇章。

m0_74922316的博客 2120

混合动作空间在强化学习中的创新应用:PDQN与MPDQN算法解析

本文深入解析了强化学习中处理混合动作空间的PDQN与MPDQN算法。针对既有离散选择又有连续调节的复杂决策场景,PDQN通过参数化深度Q网络,巧妙结合DQN与DDPG进行交替优化;MPDQN则进一步改进,为每个离散动作提供专属参数评估以减少干扰。文章通过游戏、自动驾驶等实例阐述了其应用价值与面临的挑战。

efc123456的博客 864

排序专题(5)按数据中1的位数排序

对位运算符以及与运算符的使用转载一下http://blog.youkuaiyun.com/senyelicone/article/details/52196039在这到题中用到了与运算符与移位运算符。需要注意的就是数据类型,需要用到长整型,如果是用左移的话,就更加需要注意 所有数据在内存中都是以二进制形式存放的,其中有一些位是 1,而另一些位是 0。例如,整数 100 的二进...

myh0_0的博客 1196

ai数字人系统部署

这段代码实现了基本的语音交互闭环,用户通过语音输入问题,数字人识别语音后进行自然语言理解并生成回复,再将回复转换为语音输出。但实际应用中的 AI 数字人系统更为复杂,如形象渲染需专业图形引擎(如 Unity、Unreal Engine),自然语言处理也会涉及更复杂的模型微调及多轮对话管理等。一个完整的 AI 数字人系统涵盖形象生成、自然语言处理、动作控制等多个复杂功能,下面为你提供一个 Python 示例,整合多个库来实现数字人基础功能,包括语音交互、简单的自然语言理解以及通过虚拟形象展示对话。

weixin_ggwwsscc的博客 370

排序专题.

细节决定成败,要善于反思总结。

2302_80195998的博客 809

Android RIL(Radio Interface Layer)全面概述和知识要点(3万字长文)

在 Android 系统这个庞大而复杂的体系里,RIL(Radio Interface Layer,无线接口层)绝对是个关键角色。简单来讲,它就像一座桥梁,一头连着手机基带,另一头接着上层应用 ,在应用程序和调制解调器(Modem)之间搭建起了信息交流的通道。想象一下,咱们在手机上点击拨号按钮,或者编辑一条短信发送出去,这些操作产生的请求并不会直接到达手机的基带处理器。而是先由 RIL 接手,它把这些来自上层应用程序的请求,像拨号、发送短信这类,巧妙地转换成能够和基带处理器顺畅交互的命令。

大模型大数据攻城狮的专栏 1600

倍福--手动加入第三方伺服的配置

客户在没有硬件情况下,希望手动配置硬件,添加第三方驱动器,本文介绍其操作流程 目 录 软硬件版本 3 1.1. 倍福Beckhoff 3 1.1.1. 控制器硬件 3 1.1.2. 控制软件 3 操作步骤 3 2.1. 添加电机XML文件 3 2.2. 创建EtherCAT 3 2.3. 添加新建项 3 2.4. 选择型号 4 2.5. 关联NC轴 5 软硬件版本 1.1. 倍福Beckhoff 1.1.1. 控制器硬件 TwinCAT控制制器,PC或者EPC,包括: 嵌入式控制器:CX5020-

weixin_41883890的博客 5329

LeetCode 剑指 Offer II 排序 专题总结

看完美团、字节、腾讯这三家的一二三面试问题,是不是感觉问的特别多,可能咱们真的又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。开篇有提及我可是足足背下了Java互联网工程师面试1000题,多少还是有点用的呢,换汤不换药,不管面试官怎么问你,抓住本质即可!能读到此处的都是真爱Java互联网工程师面试1000题。

2401_85377090的博客 1199

【Docker安装】Ubuntu 24.04.2 LTS系统下安装Docker环境——指定APT源安装方式

【Docker安装】Ubuntu 24.04.2 LTS系统下安装Docker环境——指定APT源安装方式

jks212454的博客 626

织梦php商城排序,解决DedeCMS网站专题排序问题

刚弄一个专题,添加内容发现内容标题不是按照添加的id排序的,也不是按照id顺序排列的。感觉像是随机的。这样不是我想要得效果,所以查询了百度半天,dedecms论坛半天发现没有解决的方法。所以我就开始研究php文件,我觉得肯定有sql查询文件。注意orderby 即可。可是文件再哪个地方呢?我找了半天。终于解决。现在将我的方法介绍给大家。按照 标题的id 降序排列。这个效果需要修改2 个php文件。...

weixin_39616056的博客 87

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LintCode-排序专题总结

排序专题提交记录: 排序专题做题感想: 刚开始做整数排序的题,想用归并排序和快速排序之类最近学习的排序方法做题,但是不会,写的代码有很多错误而且没有办法改,没办法只能用了符合题目要求的sort 函数,而后面的题相对好做一些,没有用到太多排序方面的算法,用的最多的都是sort 函数,我先做的两数组之和,发现很简单,做完之后想用同样的思路做两数组的交,发现情况不同,每比较一次,就读入了一次相同的元

yaomf的博客 384

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

修改PHPCMS V9相关文章、专题listorder、order排序功能的方法

phpcms v9自带的相关文章、专题等模块不支持order排序,调用的相关文章、专题默认为升序,这样就造成了一个问题,调出来的相关文章是最早的文章,没有时效性。我们只能通过修改程序文件,只需简单修改一个文件,就能达到我们的需求。 修改相关文章排序的方法: 打开根目录下的phpcms/modules/content/classes/content_tag.class.php,找到 $r

z . s . j 2万+

织梦edit_baseinfo.php,织梦dede专题内容页节点排序的修改方法

在网站专题内容页中节点排序默认都是按照更新的时间顺序排列的,排序的方式是降序,在调用专题内容页的内容的时候调用的标签也是{dede:field.note /},想要修改调用的排序方法也是可以的。织梦dede专题内容页节点排序的修改方法:1、{dede:field.note}其实是用{dede:arclist}{/dede:arclist}标签里的lib_arclistDone来解析的,所以orde...

weixin_39895995的博客 140

织梦php商城排序,dedecms专题内容页{dede:field.note /}节点排序的方法

dedecms专题内容页{dede:field.note /}节点排序默认是按照更新时间降序排列的,我现在想让它升序排列,该怎么修改呢,请看下文:1、{dede:field.note}其实是用{dede:arclist}{/dede:arclist}标签里的lib_arclistDone来解析的,从{dede:arclist}标签的参数可以获知,和排序相关的是orderby和order,order...

weixin_34315803的博客 442

排序专题 总结

呃,有点尴尬,前两天写完之后没保存,吃鸡的时候电脑卡了,直接强制关机,然后就凉凉····这个专题总的来说还算简单,无论你是用c++的qsort模板,还是自己写sort函数,其实难的都不是排序的问题,关键是数据的处理,这个就只能通过大量的刷题来提高了。(这个总结隔的时间有点久,忘了要写什么了··)还有就是关于qsort源码的理解,有这样一道题 就是给你一串字符串让你对其中是字母的字符进行排序,其余字...

myh0_0的博客 276

DEDE(织梦)专题节点支持按后台自定义ID顺序排序输出

不知道大家在DEDE开发过程中有没有遇到这个问题哦~刚研究出来和大家分享下,由于公司最近项目有这个需求,本来都快没希望了无意间在谷歌搜索中发现几条SQL函数,研究过DEDE的开发人员应该清楚,DEDE专题节点输出是结合了arclist标签的方式来进行解析的,输出的结构通过SQL语句查询之后循环组合成一组HTML标签生成静态页;好,那我们就依照这个原理来改进它,让其支持自定义排...

weixin_33913377的博客 174

1467: 平面点排序(一)(结构体专题)

1467: 平面点排序(一)(结构体专题) 题目描述 平面上有n个点,坐标均为整数。请按与坐标原点(0,0)距离的远近将所有点排序输出。可以自己写排序函数,也可以用qsort库函数排序。 输入 输入有两行,第一行是整数n(1<=n<=10),接下来有n行,每行一对整数(每对整数对应一个点)。 输出 输出排序后的所有点,格式为(u,v),每个点后有一个空格。测试数据保证每个点到原点的距离都不同。 样例输入 4 1 3 2 5 1 4 4 2 样例输出 (1,3) (1,4) (4,2) (

weixin_53843696的博客 361

织梦edit_baseinfo.php,修改织梦dede专题内容页节点排序方法

在织梦dede网站专题内容页中节点排序默认都是按照更新的时间顺序排列的,排序的方式是降序,在调用专题内容页的内容的时候调用的标签也是{dede:field.note /},想要修改调用的排序方法也是可以的。织梦dede专题内容页节点排序的修改方法:1、{dede:field.note}其实是用{dede:arclist}{/dede:arclist}标签里的lib_arclistDone来解析的,...

weixin_33510623的博客 203

LeetCode 专题 -- 二分查找专题 153. 寻找旋转排序数组中的最小值

LeetCode 专题 – 二分查找专题 153. 寻找旋转排序数组中的最小值 难度:中等 题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 你可以假设数组中不存在重复元素。 示例 1: 输入: [3,4,5,1,2] 输出: 1 示例 2: 输入: [4,5,6,7,0,1,2] 输出: 0 链接: https://leetcode-cn.com/problems/

shinezzz的博客 236

dede(织梦)专题节点排序方法

首先更改:spec_add.php和spec_edit.php两个文件,约244,145行这样(关键字:“$notelist .=”),分别在typeid=\\'$typeid\\'后面添加上order=\\'$order\\' orderby=\\'$orderby\\'回到上面点添加获取参数值的变量,找到$keywords = cn_substrR($keywords, ...

weixin_33696106的博客 219
上一篇: 马上就要面试了。。。
下一篇: 嗨,第一篇分享哦
肖小的人儿
博客等级 码龄12年 29粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值