三色排序
来源:互联网 发布:绿色傲剑修行升级数据 编辑:程序博客网 时间:2024/03/29 09:07
一个只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不是使用计数排序。给定一个只含有0,1,2的整数数组A及它的大小,请返回排序后的数组。保证数组大小小于等于500。
例如:[0,1,1,0,2,2] 6——>[0,0,1,1,2,2]
我的思路:首先只有三种值。小大中,首先最小到最左边,最大的到最右边。排完了最小和最大中等的值就自动拍好了。
这里有三个指针
j是最左边的指针
k是最右边的指针
i是记录在需要交换的第几个数。
class SanSe{ public int[] fun(int a[],int size){ int i=0; int j=0; int k=size; while(i<k){ if (a[i]==0) { swap(a, i, j); i++; j++; }else if (a[i]==2) { k--; swap(a, i, k); }else{ i++; } } return a; } public void swap(int[] a, int i, int j) { if(i!=j){ int temp=a[i]; a[i]=a[j]; a[j]=temp; }}}public class Test { public static void main(String[] args) { System.out.println("hello"); SanSe se=new SanSe(); int[] a={0,1,1,0,2,2}; a=se.fun(a, 6); for (int i = 0; i < a.length; i++) { System.out.println(a[i]); } }}
阅读全文
0 0
- 三色排序
- 三色排序
- 三色排序
- 排序14:三色排序
- 三色旗排序问题
- igt 三色排序问题
- 三色旗排序问题
- 三色旗排序
- 牛客网 | 三色排序
- Sort Colors 三色排序
- 三色球排序
- 三色排序练习
- 三色排序练习题
- 荷兰国旗/三色排序
- 三色排序 -- 算法小结
- 三色球数组分类排序
- 三色排序(荷兰国旗问题)
- 荷兰国旗问题,三色排序
- oracle 安装SCOTT/TIGER模式
- Android studio出现问题
- 刷题记录
- Boosting和Bagging的区别
- Sublime Text 无法使用Package Control或插件安装失败的解决方法
- 三色排序
- 学习笔记 Bootstrap 第一天--UI框架
- 解决mysql中文乱码的方法
- 你认识我的时候(转)
- 设计模式入门
- TCL info命令
- Linux网络基础——NAT技术与代理服务器
- 升级.net framework产生的阻滞的问题
- python3 调用讯飞语音听写sdk