量子猴排(Quantum Bogo sort)
排序原理
原理很简单,如果数组不是有序的,就洗一次牌,直至数组有序为止
时间复杂度
最佳情况O(n),平均情况O(n×n!)
代码如下:
import java.util.Random; public class QuantumBogo {
private static Random random = new Random(); public static void sort(Comparable[] a){
// int count = 0;
while (!isOrder(a)) {
shuffle(a);
// count++;
}
} private static boolean isOrder(Comparable[] a){
for (int i = 1; i < a.length; i++) {
if (a[i-1].compareTo(a[i]) > 0)
return false;
}
return true;
} private static void shuffle(Comparable[] a){
int n = a.length;
for (int i = 0; i < n; i++) {
int r = i + random.nextInt(n-i);
Comparable temp = a[i];
a[i] = a[r];
a[r] = temp;
}
} private static void show(Comparable[] a){
for (int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
System.out.println();
} public static void main(String[] args){
Integer[] a = new Integer[12];
for (int i = 0; i < 12; i++) {
a[i] = random.nextInt(65536);
}
show(a);
sort(a);
show(a);
}
}
量子猴排(Quantum Bogo sort)的更多相关文章
- Quantum Bogo sort浅谈
1.普通的猴子排序(bogo sort) 猴子排序百科 en.wikipedia.org/wiki/Bogosort 不停的随机打乱序列,然后检查,直到排好序 复杂度O(n*n!) while not ...
- 预见未来丨机器学习:未来十年研究热点 量子机器学习(Quantum ML) 量子计算机利用量子相干和量子纠缠等效应来处理信息
微软研究院AI头条 https://mp.weixin.qq.com/s/SAz5eiSOLhsdz7nlSJ1xdA 预见未来丨机器学习:未来十年研究热点 机器学习组 微软研究院AI头条 昨天 编者 ...
- 结构体快排回顾(sort)
一般来说,我做竞赛的时候排序一般用快排 很快很方便 普通sort(从小到大) sort(a,a+n); 直接贴一段代码吧,包含了vector,sort,结构体等简单东西综合 #include < ...
- JavaScript快排与原生sort的测试
今天工作室断网!果断回宿舍,不然各种资料都没有.(他说将来会找到!)不好意思,又哼起来了.进入主题,大家都知道,快排是各种排序算法中,最高效的也是应用最广的,还有更重要的一点,面试特别爱考的! 其实大 ...
- 量子隐形传态1 Quantum Teleportation
量子隐形传态是量子纠缠的又一个应用. 隐形传态,所谓隐形的意思就是没有物质介质就传递了信息,在经典世界,传递信息要有介质,光.电磁波或者其他的什么,但是在量子的世界里,我可以把信息传递给你,并且不传递 ...
- [luoguP1056] 排座椅(sort + 模拟)
传送门 nc题,一直sort就过了 代码 #include <cstdio> #include <iostream> #include <algorithm> #d ...
- 5000量子位支持量子编程,D-Wave推出下一代量子计算平台计划
5000量子位支持量子编程,D-Wave推出下一代量子计算平台计划 近日,全球量子商用化重要参与者 D-Wave 公司又有大动作:推出其5000量子比特量子计算的发展蓝图.D-Wave 下一代量子计算 ...
- soj1762.排座椅
1762. 排座椅 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description 上课的时候总有一些同学和前后左右的人交头接耳,这是令 ...
- 普及组2008NOIP 排座椅(贪心+排序)
排座椅 时间限制: 1 Sec 内存限制: 50 MB提交: 4 解决: 3[提交][状态][讨论版][命题人:外部导入] 题目描述 上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任 ...
随机推荐
- Day 9 作业题(完成)
# 练习题# 1.整理函数相关知识点,画思维导图,写博客 # 2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者.'''def func1(argv): f ...
- iOS-电池图标【结合贝塞尔曲线控制电量显示】
基于UIView类:WKJBatteryView WKJBatteryView.h #import <UIKit/UIKit.h> @interface WKJBatteryView : ...
- Go语言学习笔记(3)——分支、循环结构
1 条件语句: if, else if, else 特殊用法:判断num是奇是偶:其中局部变量num只能在该if...else语句中使用! if num := 10; num % 2 == 0 { ...
- 如何使用 AutoWire方式注入 JdbcDaoSupport DataSource
@Repositorypublic class MyDaoImpl extends JdbcDaoSupport implements MyDao { @Autowired private Dat ...
- python中如何使输出不换行
1.在python 2.x版本中,使用“,”(不含双引号)可使输出不换行,例如 2.python 3.x版本输出不换行格式如下 print(x, end="") end=&q ...
- phpstorm之自定义代码碎片(tab键自动填充代码)
打开phpstorm 的设置界面(快捷键ctrl+alt+s) 比如上面的form表单,需要在生成以后自动跳转到“名称”的位置,然后更改,可以如下修改
- Android之从TCP/IP、HTTP看Socket通信
1.概念 TCP/IP:属于传输层/网络层协议.手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传 ...
- CountDownTimer倒计时器的使用
以前好多倒计时的需求都需要自己去写,今天发现android 原来自带了倒计时的类CountDownTimer,和适合用于发送短信 ,等待验证码的情况 代码展示了在一个TextView进行60S的倒计时 ...
- sql server数据行号
select ROW_NUMBER() over(order by createTime desc) as RowNum,NoticeContent,CreateTime from PTS_Notic ...
- LDAP落地实战(四):Jenkins集成OpenLDAP认证
前几篇分文章分别介绍了OpenLDAP的部署管理和维护以及svn.git的接入,今天我们再下一城接入jenkins. 前情提要:LDAP系列文章 LDAP落地实战(一):OpenLDAP部署及管理维护 ...