Rainbow Sort
时间: o(n) 空间 o(1): 没有recursion, 只有当前一层的call stack
sorting 如果是general sorting algo(1:不能对数组的性质加以限制) comparison based(2: sorting 只能通过两个数的比较来进行) , 最好的时间复杂度o(nlogn)
/* * [,i) value 1 * [i, j) value 2 * (k,) value 3 * the unknown places: [j, k] * */ public class RainbowSort {public static void main(String[] args){int[] arr ={1,3,2,3,1,2} ;rainbowSort(arr);print(arr);}public static void rainbowSort(int[] arr){if (arr == null || arr.length ==0 ) return;/*i* j* k* 1 1 2 2 2 2 3 3** */int n = arr.length;int i = 0,j = 0, k = n-1;while (j<=k){if(arr[j]==1){swap(arr, i, j );i++;j++;} else if(arr[j]==2){j++;} else {swap(arr, j, k);k--;}}}public static void swap(int[] arr, int i, int j){int temp = arr[i] ;arr[i] = arr[j];arr[j] = temp;}public static void print(int[] arr){for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}} }
转载于:https://www.cnblogs.com/davidnyc/p/8454765.html
Rainbow Sort相关推荐
- Golang TDD实践报告:快速排序Quick Sort
Golang TDD实践报告:快速排序Quick Sort [阅读时间:约5分钟] 0.项目需求 1.编写符合项目输入输出的一个测试 2.尝试运行测试 3.先使用最少的代码来让失败的测试先跑起来 4. ...
- js数组的排序 sort详解
1.简单数组简单排序 <script type="text/javascript">var arrSimple=new Array(1,8,7,6);arrSimple ...
- PyTorch 笔记(08)— Tensor 比较运算(torch.gt、lt、ge、le、eq、ne、torch.topk、torch.sort、torch.max、torch.min)
1. 常用函数 比较函数中有一些是逐元素比较,操作类似逐元素操作,还有一些类似归并操作,常用的比较函数如下表所示. 表中第一行的比较操作已经实现了运算符重载,因此可以使用 a>=b,a>b ...
- Python 精选笔试面试习题—sorted 与 sort 单例模式、统计字符个数Count、垃圾回收、lambda函数、静态方法、类方法、实例方法、分布式锁、
1. 字典根据键从小到大排序? In[38]: dic = {"name": "Tom", "age": 30, "country ...
- Python 精选笔试面试习题—类继承、方法对象、包管理、闭包、可变类型作为默认参数、列表引用、sort与sorted、 append 和 extend、深拷贝和浅拷贝
1. 类继承 如下代码 class A(object):def show(self):print 'This is calss A'class B(A):def show(self):print 'T ...
- linux中sort命令实例,Linux中文本处理工具之sort命令详解
前言 sort命令将每一行作为一个单位进行比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按一定的顺序进行输出,实际上,sort命令可以被认为是一个非常强大的数据治理工具,用来治 ...
- php localcompare,JS中使用sort结合localeCompare实现中文排序实例_javascript技巧
说到表格排序,首先要说的就一定是数组的排序,因为数组排序是表格排序的基础. JavaScript为数组提供了sort()方法用于表格排序,默认情况下该方法会使Array中的数组按照ASCII码的顺序进 ...
- 排序 时间倒序_经典排序算法之冒泡排序(Bubble Sort)
冒泡排序 ( Bubble Sort ) 冒泡排序,正如它的名字一样,未排序数组中的最大(小)值会依次往上浮.冒泡排序主要有两个基本步骤:相邻元素之间的比较 和 交换位置. 步骤分析: 令待排序序列为 ...
- 奶牛排序 cow sort 置换群
链接:https://ac.nowcoder.com/acm/contest/924/H 来源:牛客网 题目描述 农夫JOHN准备把他的 N(1 <= N <= 10,000)头牛排队以便 ...
最新文章
- ASP.NET MVC的View是如何呈现出来的[实例篇]
- Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发
- Hystrix概述(二)
- 为什么对象字面量没有名字?
- MDK5.29,5.30,5.31,5.32,5.33和各种pack软件包镜像下载
- codematic2连接mysql失败_codematic2.rar
- windows ssh远程登录阿里云遇到permissions are too open的错误
- Github Actions 中 Service Container 的使用
- 基于Kubernetes的分布式压力测试方案
- aba会导致问题_ABA问题
- 汇编重要知识点:地址编号和数据编号
- php钩子配置,thinkphp 行为扩展 钩子与插件的实现
- SQLite数据库的CRUD操作
- 华为vrrp默认优先级_华为vrrp配置实例
- 双线虚拟主机服务器,国内双线虚拟主机是什么
- 杜撰的柏拉图(转自李止介的个人空间)
- 纪念短暂而美好的恋情:愿得一人心 白首不相离
- Factor Graphs and GTSAM
- 50欧姆线设计 高频pcb_高频PCB设计:射频电路的布局的走线
- Jquery 中 ajaxSubmit使用讲解