当前位置: 首页 > news >正文

[算法题:快排(一)]颜色分类

1->题目链接

算法题:颜色分类

2->题目解析

数字0表示红色,数字1表示白色,数字2表示蓝色.

这到题说白了就是让我们进行排序,数组中只会有 0 1 2 三种数字

3->算法原理

类⽐数组分两块的算法思想,这⾥是将数组分成三块,那么我们可以再添加⼀个指针,实现数组分三块。

设数组⼤⼩为 n ,定义三个指针 left, i, right :

◦ left :⽤来标记 0 序列的末尾,因此初始化为 -1 ;

◦ i :⽤来扫描数组,初始化为 0 ;

◦ right :⽤来标记 2 序列的起始位置,因此初始化为 n ;

在 i 往后扫描的过程中,保证:
◦ [0, left] 内的元素都是 0 ;

◦ [left + 1, i - 1] 内的元素都是 1 ;

◦ [i, right - 1] 内的元素是待定元素;

◦ [right, n] 内的元素都是 2 ;

当循环结束之后:

[0, left] 表⽰ 0 序列;
[left + 1, right - 1] 表⽰ 1 序列;

[right, numsSize - 1] 表⽰ 2 序列;

4->编写代码

相关文章:

  • 【unity游戏开发介绍之UGUI篇】UGUI概述和基础使用
  • ThingsBoard3.9.1 MQTT Topic(1)
  • Apollo源码总结
  • 寻找峰值 --- 二分查找
  • 主流开源大模型评估数据集
  • 【工具】Fiddler抓包
  • 本地部署大模型(ollama模式)
  • 【Code】《代码整洁之道》笔记-Chapter13-并发编程
  • 机械臂只有位置信息是否可以进行手眼标定?
  • HDF5文件格式:数据类型与读写功能详解
  • asm汇编源代码之CPU型号检测
  • Axure中继器(Repeater): 列表多选和 列表查询
  • Python 数据分析01 环境搭建教程
  • SpringBoot项目如何用ServiceLocatorFactoryBean优雅切换支付渠道?
  • FreeRTOS使任务处于运行态的API ?
  • IDEA遇到问题汇总
  • kernel32!GetQueuedCompletionStatus函数分析之返回值得有效性
  • 2025蓝桥杯算法竞赛深度突破:创新题型与高阶策略全解析
  • 【2025年泰迪杯数据挖掘挑战赛】B题 详细解题思路+数据预处理+代码分享
  • AI 谄媚式回应 | 善用成器,滥用成殇
  • 建立网站项目/东莞网络推广招聘
  • 上海网站设计与制作/整合营销传播策略
  • 怎样找做淘宝客的网站/查询网 网站查询
  • 免费的网站建设开发/软文平台
  • 临安建办网站/微信推广平台
  • 企业门户网站建设特色/三只松鼠有趣的软文