三部排序|2013年蓝桥杯B组题解析第六题-fishers
三部排序|
一般的排序有许多经典算法,如快速排序、希尔排序等。
但实际应用时,经常会或多或少有一些特殊的要求。我们没必要套用那些经典算法,可以根据实际情况建立更好的解法。
比如,对一个整型数组中的数字进行分类排序:
使得负数都靠左端,正数都靠右端,0在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。可以利用这个特点通过1次线性扫描就结束战斗!!
以下的程序实现了该目标。
其中x指向待排序的整型数组,len是数组的长度。
void sort3p(int* x, int len)
{int p = 0;int left = 0;int right = len-1;while(p<=right){if(x[p]<0){int t = x[left];x[left] = x[p];x[p] = t;left++;p++;}else if(x[p]>0){int t = x[right];x[right] = x[p];x[p] = t;right--; }else{__________________________; //填空位置}}}
答案:p++
思路:递归程序,代码填空思路:可以自己选取一段数据,模拟题目中的代码,手算一遍理清思路。
经过分析可以知道,三部排序的思路类似于快速排序的指针划分。大于0的放在数组右端、等于0的在中间、小于0的放在左端。
这里的p表示正在判断的元素指针所处的位置,left就是左端第1个大于0的元素的指针,right就是右端最前1个大于0的指针。
转载于:https://www.cnblogs.com/fisherss/p/10326372.html
三部排序|2013年蓝桥杯B组题解析第六题-fishers相关推荐
- 2018第九届蓝桥杯B组决赛题解第六题 矩阵求和
标题:矩阵求和 经过重重笔试面试的考验,小明成功进入 Macrohard 公司工作. 今天小明的任务是填满这么一张表: 表有 n 行 n 列,行和列的编号都从1算起. 其中第 i 行第 j 个元素的值 ...
- 2013第四届蓝桥杯Java组省赛题解析
2013第四届蓝桥杯Java组省赛题解析 目录 第一题:高斯日记 第二题:马虎的算式 第三题:第39级台阶 第四题:黄金连分数 第五题:前缀判断 第六题:三部排序 第七题:错误票据 第八题:翻硬币 ...
- 2019第十届蓝桥杯A组决赛(国赛)A题(三升序列)
2019第十届蓝桥杯A组决赛(国赛)A题(三升序列) 输入: VLPWJVVNNZSWFGHSFRBCOIJTPYNEURPIGKQGPSXUGNELGRVZAG SDLLOVGRTWEYZKKXNK ...
- 2013第四届蓝桥杯JavaA组省赛真题详解
蓝桥杯历年省赛真题汇总及题目详解 蓝桥杯历年决赛试题汇总及试题详解 目录 第一题:世纪末的星期 第二题:振兴中华 第三题:梅森素数 第四题:颠倒的价牌 第五题:三部排序 第六题:逆波兰表达式 第七题: ...
- 蓝桥杯B组省赛预赛第一题2013(高斯日记)
题目标题: 高斯日记 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯 ...
- 第四届蓝桥杯JavaB组国(决)赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.猜灯谜 题目描述 A 村的元宵节灯会上有一迷题: 请猜谜 * 请猜谜 = 请边赏灯边猜 小明想,一定是每个汉字代表一个数字,不同的汉字 ...
- 第四届蓝桥杯JavaC组国(决)赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.好好学习 汤姆跟爷爷来中国旅游.一天,他帮助中国的小朋友贴标语.他负责贴的标语是分别写在四块红纸上的四个大字:"好.好.学. ...
- 第六届蓝桥杯JavaC组国(决)赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.机器人数目 少年宫新近邮购了小机器人配件,共有3类,其中, A类含有:8个轮子,1个传感器 B类含有: 6个轮子,3个传感器 C类含有 ...
- 2019第十届蓝桥杯B组C++省赛E题迷宫--BFS(倒搜)
试题 E: 迷宫 本题总分:15 分 [问题描述] 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方. 010000 000100 001001 110000 迷宫 ...
最新文章
- MinGW-w64 编译器下载,安装,以及环境变量配置
- linux mysql 二进制包_mysql5.7 二进制包安装
- 汇编(8086cpu): AX,BX,CX,DX寄存器
- SQLite VC环境搭建
- xfce4自己使用的主题设置备份以及xfce4默认的壁纸路径
- slf4j注解log报错_SpringBoot自定义日志注解,用于数据库记录操作日志,你用过吗?...
- 0.《沉浸式线性代数》:前言
- 【职场】高薪的条件你满足几条?
- python egg
- O(logn)复杂度恐怖之处
- android web developer,Growth: 一个关于如何成为优秀Web Developer 的 App
- 基于VUE,VUX组件开发的网易新闻页面搭建过程
- 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1-2-3-3-4-4-5 处理后为 1-2-5(非常简单明了)
- pytorch转onnx: step = 1 is currently not supported以及Exporting the operator silu to ONNX opset version
- 更改pip镜像源的多种方法
- 基于Serverless的流量隐匿(四个方面)
- (简单)SQL练习13:从titles表获取按照title进行分组
- STM32F103移植FreeRTOS
- lzg_ad:XPE中的Remote Procedure Call (RPC) Locator服务无法启动
- SIGIR2020推荐系统论文解析:Recommendation for New Users and New Items
热门文章
- 11步教你选择最稳定的MySQL版本
- 在windows 2008下不同域活动目录迁移(ADMT3.1)
- 如何实现Asp与Asp.Net共享Session
- Android ViewPager和Fragment实现顶部导航界面滑动效果
- mac ox 10.9 安装eclipse j2ee 集成配置JDK1.6
- golang实现生产者和消费者
- lsof根据端口查进程
- 0122 - EOS 编程学习日志(1)
- 灯的开关 Bulb Switcher II
- 如何区分Android wrap_content和fill_parent的详细说明