10.16课上

news2025/2/22 17:09:41

煎饼排序

第一步找剩余数组里的最大值,然后从头到这里翻转一次,这样最大值就到了开头,再把开头从当前结尾翻转一次,就把当前的最大值翻转到了最后

class Solution {
public:
    vector<int> pancakeSort(vector<int>& arr) 
    {
        /*一种类选择排序的思路
        我们有一种方法可以把当前数组最大元素放到数组结尾
        假设当前数组长度为n 设最大元素的下标为index
        如果它的下标就在n - 1 那就不用翻转了 它已经处于正确位置了
        首先翻转index + 1 然后这个元素就会到首位
        然后翻转n 就是整个数组翻转一下 这个元素就会到末尾
        因此每次摆放玩最大元素就让数组长度减1,接着操作
        直到数组长度为1为止
        这样总共最多会翻转2 * (arr.length - 1)次 是符合题意的*/
        vector<int> ret;
        for (int n = arr.size(); n > 1; --n)
        {
            int index = max_element(arr.begin(), arr.begin() + n) - arr.begin();
            if (index == n - 1) continue;
            reverse(arr.begin(), arr.begin() + index + 1);
            reverse(arr.begin(), arr.begin() + n);
            ret.push_back(index + 1);
            ret.push_back(n);
        }
        return ret;
    }
};

D.2*(N-2)+1

 

快速排序思路

每次都选一个基元,然后有一个左指针和一个右指针,完成两个目的,一个是固定基元的最终实际位置,另一个是说,让其最终位置之前的元素都比它小,其之后的元素都比它大

如果左指针向后遍历,直到遇到第一个比基元大的;右指针向前遍历,直到遇到第一个比基元小的;都停止时,进行交换,然后重复这一过程,直到左指针和右指针指向同一个元素,这时就是终点,让其和基元交换,就是基元的最终位置

void quick_sort(int num[], int low, int high )
{
    int i,j,temp;
    int tmp;

    i = low;
    j = high;
    tmp = num[low];   //任命为中间分界线,左边比他小,右边比他大,通常第一个元素是基准数

    if(i > j)  //如果下标i大于下标j,函数结束运行
    {
        return;
    }

    while(i != j)
    {
        while(num[j] >= tmp && j > i)   
        {
            j--;
        }

        while(num[i] <= tmp && j > i)
        {
            i++;
        }

        if(j > i)
        {
            temp = num[j];
            num[j] = num[i];
            num[i] = temp;
        }
    }

    num[low] = num[i];
    num[i] = tmp;

    quick_sort(num,low,i-1);
    quick_sort(num,i+1,high);
}

 

冒泡排序的思路是

从头开始遍历,如果当前元素比后一个元素大,就交换其位置,如果说遇到了最大值,那么每次交换后,都必定比后一个元素大,所以就一定会“冒泡”到此时数组的最后一个位置,由此就是每次都会使当前数组里的最大元素冒泡到对应位置

‘冒泡排序的交换次数就是逆序数 

对于相邻的两个元素AB交换位置,不影响其前后所有元素的情况,也就是说只会影响这两个元素之间的关系,A和B后面的元素能组成逆序对时,AB交换后,A依然能和B后面的元素组成逆序对,如果AB构成逆序对,那么交换后AB的逆序对就消失了,所以相邻元素只会减少一个(交换的条件是前面元素比后面大,即交换时前面元素必定比后面元素大,即交换时就是逆序对),最后排序完后数组有序,逆序对都没了,那就是已经把所有逆序对都计上了

最多K次相邻交换

假设前i个是有序的,从第i个开始,往后k个找到最小的,然后和第i+1位交换(冒泡交换),共需要J-1次交换,那么此时还剩下k-j+1次交换次数,前i+1有序

递归解决,记录开始下标与剩余交换次数,直到下标到顶或者交换次数为0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1098631.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

吃瓜教程-模型的评估与选择

在训练集上的误差称为训练误差&#xff08;training error&#xff09;或经验误差&#xff08;empirical error&#xff09;。在测试集上的误差称为测试误差&#xff08;test error&#xff09;。学习器在所有新样本上的误差称为泛化误差&#xff08;generalization error&…

Apipost一键压测已支持导入CSV文件

最近更新中Apipost对UI页面进行了一些调整&#xff0c;另外一键压测功能支持参数化&#xff01;本篇文章将详细介绍这些改动&#xff01; API调试页面的细节改动 在请求区填入请求参数或脚本时会有相应的标识 如在Query中填入多个参数时上方会展示数量 在预、后执行脚本中写…

Vue3.0 项目结构及组件

main.js文件 // vue中main.js的作用 // main.js是项目的入口文件&#xff0c;项目中所有的页面都会加载main.js,所以main.js,主要有三个作用&#xff1a; // 1.实例化Vue。 // 2.放置项目中经常会用到的插件和CSS样式。例如&#xff1a; 网络请求插件:axios和vue-resource、图…

vue小写数字转大写-例如:11转为十一

vue小写数字转大写-例如&#xff1a;11转为十一 在Vue中&#xff0c;可以使用自定义过滤器&#xff08;Custom Filter&#xff09;来将数字转换为大写的形式。 下面是一个示例&#xff1a; // main.js import Vue from vue;Vue.filter(toChineseNumber, function (value) {c…

2.3 初探Hadoop世界

文章目录 零、学习目标一、导入新课二、新课讲解&#xff08;一&#xff09;Hadoop的前世今生1、Google处理大数据三大技术2、Hadoop如何诞生3、Hadoop主要发展历程 &#xff08;二&#xff09;Hadoop的优势1、扩容能力强2、成本低3、高效率4、可靠性5、高容错性 &#xff08;三…

Bitquiz重塑Learn to Earn热潮,用户零投入让学习创造价值

Axie 带来的暴富效应、StepN 带来的出圈效应&#xff0c;近期Bigtime 在熊市中的大火&#xff0c;为加密参与者带来的赚取效应&#xff0c;X to Earn 重新成为整个市场关注的重点&#xff0c;GameFi 再次站在了风口浪尖。 大家开始寻找下一个Bigtime&#xff0c;希望能够抓住一…

设计模式_迭代器模式

迭代器模式 介绍 设计模式定义案例迭代器模式行为型&#xff1a;关注对象与行为的分离 提供了一种统一的方式来访问多个不同的集合两个集合&#xff1a;使用了不同的数据存储方式 学生 和 警察 查询显示出集合的内容 &#xff0c;使用相同的代码 问题堆积在哪里解决办法不同…

在IE浏览器下fixed定位容器随着滚动条出现抖动问题(实测有效)

在ie浏览器下使用fixed定位的容器随着滚动条滚动出现晃动&#xff0c;这种问题比较常见&#xff0c;以下我们给两个解决方案。 方案一 把滑动滚动取消 方案二 在vue组件的created生命周期中添加此代码 document.addEventListener(wheel,function(event) {event.preventDefa…

大模型引发“暴力计算”,巨头加速推进液冷“降温”

点击关注 文&#xff5c;姚悦 编&#xff5c;王一粟 一进入部署了液冷服务器的数据中心&#xff0c;不仅没有嘈杂的风扇声&#xff0c;甚至在不开空调的夏日也完全没有闷热感。 在大模型引发“暴力计算”的热潮下&#xff0c;数据中心的上下游&#xff0c;正在加紧推进液冷“…

超越10倍开发者

软件开发领域素来有10倍开发者的说法&#xff0c;但对于有理想的开发人员来说&#xff0c;在提升开发、架构能力的基础上&#xff0c;训练自己站在产品的角度考虑问题&#xff0c;将产品打造得更为符合客户和运维的需求&#xff0c;可能比10倍效能的个人开发者能够产生的价值更…

私有化部署AI智能客服,解放企业成本,提升服务效率

在信息时代&#xff0c;企业面临着服务效率提升和成本压力的双重挑战。作为一个领先品牌&#xff0c;WorkPlus致力于为企业提供私有化部署的AI智能客服解决方案。本文将深入探讨WorkPlus AI智能客服如何帮助企业解放成本、提升服务效率以及打造个性化的卓越客户体验。 AI智能客…

RabbitMQ的5种模式——再探RabbitMQ的模式,简单、工作,发布订阅(广播),路由、主题 页面分析

前言 RabbitMQ作为一款常用的消息中间件&#xff0c;在微服务项目中得到大量应用&#xff0c;其本身是微服务中的重点和难点&#xff0c;有不少概念我自己的也是一知半解&#xff0c;本系列博客尝试结合实际应用场景阐述RabbitMQ的应用&#xff0c;分析其为什么使用&#xff0…

AUTOSAR组织发布20周年纪念册,东软睿驰NeuSAR列入成功案例

近日&#xff0c;AUTOSAR组织在成立20周年之际发布20周年官方纪念册&#xff08;20th Anniversary Brochure&#xff09;&#xff0c;记录了AUTOSAR组织从成立到今天的故事、汽车行业当前和未来的发展以及AUTOSAR 伙伴关系和合作在重塑汽车方面的作用。东软睿驰提报的基于AUTOS…

JOSEF约瑟 漏电继电器 JD1-200 工作电压:380V 孔径:45mm 50~500mA

JD1系列漏电继电器 系列型号 JD1-100漏电继电器 JD1-200漏电继电器 JD1-250漏电继电器 JD1系列漏电继电器原为分体式固定式安装&#xff0c;为适应现行安装场合需要&#xff0c;上海约瑟继电器厂在产品原JD1一体式漏电继电器基础上进行产品升级&#xff0c;开发出现在较为…

手机市场或迎复苏,芯片测试与封测供应链积极应对 | 百能云芯

低迷不振的手机供应链&#xff0c;终于迎来曙光&#xff1f;半导体封测供应链传出从10月开始&#xff0c;手机系统大厂终于开始有明显的库存回补动作&#xff0c;锁定如联发科等一线手机SoC从业者的「旧款芯片」备货。 测试厂如京元电、测试界面的雍智等接获备战指示&#xff0…

线下研讨会(深圳)|乐鑫 ESP RainMaker 提供硬件连云一体化方案

伴随着智能化普及&#xff0c;全球用户对物联网产品的需求急剧增长。大量传统企业希望紧跟市场变化&#xff0c;快速实现产品的智能化转型。然而&#xff0c;与传统的智能硬件制造不同&#xff0c;构建物联网生态需要具备大量硬件、软件&#xff0c;以及云端集成的专业知识。这…

kong网关从入门到放弃

Kong网关是一个轻量级、快速、灵活的云名称API网关。Kong Gateway位于您的服务应用程序前面&#xff0c;可动态控制、分析和路由请求和响应。KongGateway通过使用灵活、低代码、基于插件的方法来实现您的API流量策略。 https://docs.konghq.com/gateway/latest/#features 架构…

【SpringCloud-11】SCA-sentinel

sentinel是一个流量控制、熔断降级的组件&#xff0c;可以替换第一代中的hystrix。 hystrix用起来没有那么方便&#xff1a; 1、要在调用方引入hystrix&#xff0c;没有ui界面进行配置&#xff0c;需要在代码中进行配置&#xff0c;侵入了业务代码。 2、还要自己搭建监控平台…

仪酷LabVIEW OD实战(3)——Object Detection+onnx工具包快速实现yolo目标检测

‍‍&#x1f3e1;博客主页&#xff1a; virobotics(仪酷智能)&#xff1a;LabVIEW深度学习、人工智能博主 &#x1f384;所属专栏&#xff1a;『LabVIEW深度学习工具包』『仪酷LabVIEW目标检测工具包实战』 &#x1f4d1;上期文章&#xff1a;『仪酷LabVIEW OD实战(2)——Obje…

【微服务 SpringCloud】实用篇 · Eureka注册中心

微服务&#xff08;3&#xff09; 文章目录 微服务&#xff08;3&#xff09;1. Eureka的结构和作用2. 搭建eureka-server2.1 创建eureka-server服务2.2 引入eureka依赖2.3 编写启动类2.4 编写配置文件2.5 启动服务 3. 服务注册1&#xff09;引入依赖2&#xff09;配置文件3&am…