借鉴快速排序的思想,实现算法将整型数组a[0...n]分成两块,使得第一块元素均大于等于0,第二块的元素均小于0,要求算法原地工作且时间复杂度为O(n)
题目:借鉴快速排序的思想,实现算法将整型数组a[0...n]分成两块,使得第一块元素均大于等于0,第二块的元素均小于0,要求算法原地工作且时间复杂度为O(n)
完整代码实现:
#include<iostream>
using namespace std;void blocks(int* a, int n)
{int low = 0, high = n - 1, tmp = 0;while (low<=high){if (a[high] >= 0 ){if (a[low] < 0){tmp = a[high];a[high] = a[low];a[low] = tmp;}low++;}else{high--;}}
}int main()
{int arr[10] = { 1,0,-3,-5,7,8,2,-4,9,4 };blocks(arr, 10);//调用函数for (int i = 0; i < 10; i++){printf("%d\n", arr[i]);}system("pause");return 0;
}
运行结果:
借鉴快速排序的思想,实现算法将整型数组a[0...n]分成两块,使得第一块元素均大于等于0,第二块的元素均小于0,要求算法原地工作且时间复杂度为O(n)相关推荐
- 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)
输入一个整型数组,数组里有正数也有负数.数组中的一个或连续多个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为O(n).(奇安信-wab前端) 例如,输入的数组为{ 1.-2.3.10. ...
- C语言-输入任意多个数字,存到整型数组,支持任意间隔符,同时支持输入字母存到字符数组中
第一次在CSDN上写博客- 记录一下想了有那么久的,这串代码 起因是做应用密码学的作业时,有Vigenere密码的加密解密.仿射密码加密解密.Playfair算法.Hill密码 因为数据量比较大,要把 ...
- 奇偶数分离c语言,如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序...
导航:网站首页 > 如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序 如何把一个整型数组中,奇数偶数进行分离 怎么使数组进行奇偶奇偶相间排序 相关问题: 匿名网友: imp ...
- 关于《输入一个字符串,内有数字和非数int字符,如a123x456,将其中连续的数作为一个整数,依次存放到整型数组a中》的一点看法
最近刚刚学习了C基础这门课程,作到了这个习题,这个题目要求将字符串中的数字作为整数存放到整型数组中,这个题目有一个特点就是字符串中除了有数字还有非数int字符.看完题目,我顿时来了兴趣. 在一开始我选 ...
- C语言学习之通过指针变量输出整型数组a的10个元素
通过指针变量输出整型数组a的10个元素 int main(){int a[10],i,*p=a;//p的初值是a,p指向a[0] for(i=0;i<10;i++){scanf("%d ...
- TreeSet,Hashset,Set集合转为整型数组
TreeSet,Hashset,Set集合转为整型数组 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/509906 ...
- Java将五个整数存入整形数组_异常处理:从命令行输入5个整数,放入一整型数组,然后打印输出。。。...
从命令行输入5个整数,放入一整型数组,然后打印输出.要求: 如果输入数据不为整数,要捕获输入不匹配异常,显示"请输入整数":如果输入数据多余5个,捕获数组越界异常,显示" ...
- 定义整型数组_C++数组的定义与初始化(学习笔记:第6章 01)
数组的定义与使用[1] 数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素. 数组的定义 方括号里面列出的常量表达式是数组每一维的下标个数.数组的下标不管从哪一维它都是从 ...
- 2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小
2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小. 我的大致思路是把这个整型数组转换成String数组,然后通过String类的compareTo方 ...
最新文章
- gnupg环境搭建时遇到的问题
- Log4j2异步日志背后的数字
- Nim 游戏 、⽯头游戏1、石头游戏2
- ROS2学习(十一).ROS概念 - 命令行工具的使用
- NET问答: 如何实现读写 file 的时候不用锁模式 ?
- linux java jar打包_【Java】Java程序打包成jar包在Linux上运行
- servlet和jsp学习总结
- 2017.5.2AM
- mysql _bin编码_mysql中utf8_bin、utf8_general_ci、utf8_general_cs编码区别
- php7安装redis扩展和memcache扩展
- RequestsLibrary库入门介绍
- 推荐几款网页幻灯片js库
- 微信公众号H5合成图片长按下载
- 【presto】函数大全
- 请你相信心有多大,舞台就会有多大
- 计算机桌面图标变大,电脑桌面图标变大了怎么恢复?
- 分贝、电平、增益、音高、音分、声能、声强、声压...
- 1.1 项目经理是干什么的
- Python 阴阳师/pillow-窗口截屏/opencv-图像识别/pyaotugui-点击/pyqt5-UI界面设计/pyqt5-窗口绘制
- Android 如何获取传感器的数据
热门文章
- 什么是哈希(Hsah)算法,哈希算法的作用以及Java中常见的哈希算法的使用案例。
- ubuntu输入密码后黑屏的解决方法
- 用C++解线性规划问题
- 无法从jinja2 引入 evalcontextfilter, Markup, escape
- 看完这篇 教你玩转渗透测试靶机vulnhub——FunBox9(GaoKao)
- 金山词霸 2007 龙卷风版 V1.3 简体中文免激活版[已整合SP1升级包] 支持win7
- Linux源码目录结构和Linux文件系统目录结构
- 有没有精神病,和这个模型聊聊就能确认
- 关于在Android中使用CMake你所需要了解的一切(三)
- 关于jdbc中executeUpdate()的错误