排序总结

AI市场风起云涌,ai浏览器是最佳的落地项目,现在ai市场的ai浏览器竞争加剧,得ai浏览器者得天下! 从场景覆盖度来看,AI 浏览器已突破 “网页浏览” 的传统边界,成为连接个人生活、工作、消费的 “超级入口”,这是其他 AI 应用难以比拟的落地优势。在个人生活场景,AI 浏览器可基于用户行为数据主动提供服务 —— 当用户浏览马拉松赛事信息时,浏览器能自动生成 “训练计划 + 装备推荐 + 能量补给方案”,并关联预订链接;在工作场景,Opera Neon 浏览器已实现 “网页内容提取 - 代码生成 - 报告撰写” 的全流程辅助,开发者可直接在浏览器内完成网站开发初稿; 阅读详情

冒泡排序

  比较相邻两个元素,上浮轻(小)元素或者下沉重(大)的元素
  例子:int arrayNum[] = {6, 2, 1, 3, 8, 7, 0}

  第一趟交换过程
       6 2 1 3 8 7 0
       2 6 1 3 8 7 0
       2 1 6 3 8 7 0
       2 1 3 6 8 7 0
       2 1 3 6 8 7 0
       2 1 3 6 7 8 0
       2 1 3 6 7 0 8

  第一趟排序结果-> 2 1 3 6 7 0 8

        for (int i = 0; i < arrayNum.length; i++) {
            for (int j = 0; j < arrayNum.length - 1; j++) {
                if (arrayNum[j] > arrayNum[j + 1]) {
                    int temp = arrayNum[j];
                    arrayNum[j] = arrayNum[j + 1];
                    arrayNum[j + 1] = temp;
                }
            }
        }

每一趟的排序结果
         2 1 3 6 7 0 8
         1 2 3 6 0 7 8
         1 2 3 0 6 7 8
         1 2 0 3 6 7 8
         1 0 2 3 6 7 8
         0 1 2 3 6 7 8
         0 1 2 3 6 7 8

选择排序

   寻找最大或者最小的元素置于首或尾
  例子:int arrayNum[] = {6, 2, 1, 3, 8, 7, 0}
  第一趟
     找到最小的元素 0 与 首位置元素6 交换
        0 2 1 3 8 7 6

        for(int i = 0; i < arrayNum.length; i ++){
            int min = i;
            for(int j = i + 1; j < arrayNum.length - i; j ++){
                if(arrayNum[i] > arrayNum[j]){
                    min = j;
                }
            }
            
            if(min != i){
                int temp = arrayNum[i];
                arrayNum[i] = arrayNum[min];
                arrayNum[min] = temp;
            }
        }

  每一趟的排序结果
         0 2 1 3 8 7 6
         0 1 2 3 8 7 6
         0 1 2 3 8 7 6
         0 1 2 3 8 7 6
         0 1 2 3 8 7 6
         0 1 2 3 8 7 6
         0 1 2 3 8 7 6

插入排序

   对于未排序的元素 在 已经排好序的元素里找合适的位置插入
  例子:int arrayNum[] = {6, 2, 1, 3, 8, 7, 0}
   第一趟
     假设位置0前元素已将排好序,位置1元素开始寻找合适的位置插入
         2 6 1 3 8 7 0

        for (int i = 1; i < arrayNum.length; i++) {
            // 已排序的位置
            int j = i - 1;

            // 本次插入元素
            int current = arrayNum[i];

            // 寻找插入的位置
            while (j >= 0 && arrayNum[j] > current) {
                arrayNum[j + 1] = arrayNum[j];
                j --;
            }
            // 将当前需要插入的元素放入合适的位置
            arrayNum[j + 1] = current;
        }

   每一趟排序结果
         2 6 1 3 8 7 0
         1 2 6 3 8 7 0
         1 2 3 6 8 7 0
         1 2 3 6 8 7 0
         1 2 3 6 7 8 0
         0 1 2 3 6 7 8

快速排序

   挑选基准,跟 基准 pivot比较大小分区

   例子:int arrayNum[] = {6, 2, 1, 3, 8, 7, 0}

   交换原则:右边空位,左边取值比较;左边空位,右边取值比较

   选取第一个元素为基准元素pivot

   第一趟交换过程, 6为基准,L位置为空
       (L) 2 1 3 8 7 0( R)
       空位在左,基准跟R位置元素0相比,0 < 6,元素0填入L处空位,L+1
       0 2(L) 1 3 8 7 ( R)
       空位在右,跟L位置元素2相比,2 < 6 , L+1
       0 2 1(L) 3 8 7 ( R)
       空位在右,跟L位置元素1相比,1 < 6 , L+1
       0 2 1 3(L) 8 7 ( R)
       空位在右,跟L位置元素3相比,3 < 6 , L+1
       0 2 1 3 8(L) 7 ( R)
       空位在右, 跟L位置元素8相比,8 > 6 ,元素8填入R处空位,R-1
       0 2 1 3 (L) 7 ( R) 8
       空位在左,基准跟R位置元素7相比,7 > 6,R-1
       0 2 1 3 空 (LR) 7 8
       L R重合,基准写入空位
       0 2 1 3 6 7 8

第一趟排序结果-> 0 2 1 3 6 7 8

    public static void quickSort(int[] arrayNum, int start, int end) {
        int i = start;
        int j = end;

        int pivot = arrayNum[start];
        while (i < j) {
            while (i < j && pivot <= arrayNum[j]){
                j--;
            }
            if (i < j) {
                swap(arrayNum, i, j);
            }

            while (i < j && arrayNum[i] <= pivot) {
                i++;
            }
            if (i < j) {
                swap(arrayNum, i, j);
            }
        }

        if (i - 1 > start) {
            quickSort(arrayNum, start, i - 1);
        }
        if (j + 1 < end) {
            quickSort(arrayNum, j + 1, end);
        }
    }

   每一趟排序结果
         0 2 1 3 6 7 8
         0 2 1 3 6 7 8
         0 1 2 3 6 7 8

SPAD IMX479规格_分辨率 当然IMX479具备IMX459几乎全部的数字架构,但也有一个缺点就是贵,这个让头部的主机厂有些犹豫,毕竟大家都在集中火力想把车载LiDAR玩进千元机。如果用一片IMX479是不太可能实现千元内部的,当然国产也在奋起直追,特别在前面的几家SPAD厂商都具备开发IMX479的实力,但相对来说落地可能更是当下所考虑的,IMX479的迭代是基于IMX459,小编已经注意到国内有一两家已经在挑战479的规格了,如果国产SPAD没有大规模量产就直接流片IMX479的规格,可能就有点忽略市场的反馈闭环。 阅读详情

相关推荐

给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格

题目描述 给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello” 输入描述: 输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符) 输出描述: 对于每个测试示例,要求输出句子中单词反转后形成的句子

[LeetCode解题报告] 423.英文重建数字

脑筋急转弯

liuliangcan的博客 367

无线网络安全课程项目-无线渗透测试实验与伪造无线AP攻击-通过模拟真实攻击场景提升无线网络防御能力-无线渗透测试伪造AP攻击网络安全实验WPAWPA2破解流量嗅探中间人.zip

Makefile自动化编译实战项目无线网络安全课程项目_无线渗透测试实验与伪造无线AP攻击_通过模拟真实攻击场景提升无线网络防御能力_无线渗透测试伪造AP攻击网络安全实验WPAWPA2破解流量嗅探中间人.zip无线网络安全课程项目_无线渗透测试实验与伪造无线AP攻击_通过模拟真实攻击场景提升无线网络防御能力_无线渗透测试伪造AP攻击网络安全实验WPAWPA2破解流量嗅探中间人.zip

leetcode每日一题-423:从英文重建数字

leetcode每日一题-423:从英文重建数字 链接 从英文重建数字 题目 分析 首先我们先分析每个字母的组成,然后发现一些字符只在一个单词中出现,我们先去统计一下这些单词个数。 z,w,u,x,g都只出现在一个数字中,也就是0,2,4,6,8,我们用哈希表统计一下s字符串中各个字符的数量,就可以知道0,2,4,6,8的数量,然后我们注意一下只在两个数字中出现的字符。 h 只在 3,8 中出现。由于我们已经知道了 8 出现的次数,因此可以计算出 3 出现的次数。 f 只在 4,5 中出现

qq_45826803的博客 4992

Leetcode 423.英文重建数字

英文重建数字 给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 注意: 输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 "abc" 或 "zerone" 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1: 输入: "owoztneoer" 输出: "012" (ze...

kexinxin1的博客 796

LeetCode 423.英文重建数字(C++、python)

给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 注意: 输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 "abc" 或 "zerone" 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1: 输入: "owoztneoer" 输出: "012" (zeroonetwo) 示例 2: 输入: ...

qq_27060423的博客 1011

leetcode 423.英文重建数字

给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 注意: 输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 “abc” 或 “zerone” 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1: 输入: “owoztneoer” 输出: “012” (zeroonetwo) 示例 2: 输入: “f...

用通俗的语言讲述严谨的科学方法 1552

Leetcode 423. Reconstruct Original Digits from English 重构数字 解题报告

1 解题思想这道题是让我们给了我们一个字符串,字符串里全都是用英文写的数字,但是字母顺序是打乱的现在我们需要还原出来其真正的数字,字符串肯定是合法的解题的核心在于,0~9对应的英文字母,有那么些规律,可以从中到相关的规律。* zero:0 * one:1 * two:2 * three:3 * four:4 * five:5 * six:

MebiuW的专栏 442

leetcode:423.英文重建数字

解题方案: var originalDigits = function(s) { let match = (char) => (s.match(new RegExp(char,'g')) || []).length ; let n0 = match('z'); let n2 = match('w'); let n8 = match('g'); let n6 = match('x'); let n3 = match('t') - n2 - n8;

Rob_gao的博客 340

leetcode 423. Reconstruct Original Digits from English 乱序英文字符串恢复数字 + 发现规律

Given a non-empty string containing an out-of-order English representation of digits 0-9, output the digits in ascending order. Note: Input contains only lowercase English letters. Input is guarant

JackZhangNJU的专栏 886

力扣(leetcode)闲来无事刷一刷

力扣(leetcode423.英文重建数字 python题目思路遇到的问题代码结果结论 题目 给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 注意: 输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 “abc” 或 “zerone” 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1: 输入: “owo...

chu7474的博客 359

LeetCode 423. Reconstruct Original Digits from English 解题报告

LeetCode 423. Reconstruct Original Digits from English 解题报告

骆小坑的填坑之旅 1651

2015蘑菇街笔试题——给定一个英文单词的字符串,按照英文单词的顺序反转输出

#include <string.h> #include <exception>void Reverse(char list[],int begin,int end) { if (begin > end) { throw new std::exception("error"); } char temp; while(begin < end)

mengni123321的专栏 917

LeetCode423.英文重建数字————中等

题目 423.英文重建数字 给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9)。按 升序 返回原始的数字。 示例 1: 输入:s = "owoztneoer" 输出:"012" 示例 2: 输入:s = "fviefuro" 输出:"45" 提示: 1 <= s.length <= 105 s[i] 为 ["e","g","f","i","h","o","n","s","r","u","t","w","v","x","z"] 这些字符之一 s 保证是一个

Kinght_123的博客 499

leetcode 423.英文重建数字python

题目描述: 题解一:未通过 1.word_to_num保存对应位置数字对应的单词。 2.在输入s中,从word_to_num第一个位置单词开始,如果可以到,则向nums加入对应数字。 3.将nums中结果以字符串形式输出。 结果:未通过,没有考虑到同一个数字出现多次的情况 class Solution(object): def originalDigits(self, s): word_to_num = ["zero","one","two","three",".

ganggang的博客 344

Leetcode-423. Reconstruct Original Digits from English

前言:为了后续的实习面试,开始疯狂刷题,非常欢迎志同道合的朋友一起交流。因为时间比较紧张,目前的规划是先过一遍,写出能想到的最优算法,第二遍再考虑最优或者较优的方法。如有错误欢迎指正。博主首发CSDN,mcf171专栏。 博客链接:mcf171的博客 —————————————————————————————— Given a non-empty string containin

mcf171的专栏 366

LeetCode-Python-423.英文重建数字

给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 注意: 输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 "abc" 或 "zerone" 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1: 输入: "owoztneoer" 输出: "012" (zeroonetwo) 示例 2: 输入: ...

Keep Coding 802

LeetCode423. Reconstruct Original Digits from English 解题报告(Python)

LeetCode423. Reconstruct Original Digits from English 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode.com/problems/reconstruct-original-digits-from-english/description/ 题目描述: Given a non-emp...

负雪明烛 1282

423英文重建数字规律

1. 问题描述:给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 注意: 输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 "abc" 或 "zerone" 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1: 输入: "owoztneoer" 输出: "012" (zeroonetwo) 示例 2: 输入: "fviefuro" 输出: "45" (fourfive) 来源:力扣(LeetCode) 链接:https

二哈 464

LeetCode刷题实战423:从英文重建数字

算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !...

程序IT圈 259
上一篇: Itext给PDF添加页码
下一篇: 分页查询数据重复出现问题解决
Kalinda Sharma
博客等级 码龄10年 19粉丝 67原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值