排序原理

原理很简单,如果数组不是有序的,就洗一次牌,直至数组有序为止

时间复杂度

最佳情况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)的更多相关文章

  1. Quantum Bogo sort浅谈

    1.普通的猴子排序(bogo sort) 猴子排序百科 en.wikipedia.org/wiki/Bogosort 不停的随机打乱序列,然后检查,直到排好序 复杂度O(n*n!) while not ...

  2. 预见未来丨机器学习:未来十年研究热点 量子机器学习(Quantum ML) 量子计算机利用量子相干和量子纠缠等效应来处理信息

    微软研究院AI头条 https://mp.weixin.qq.com/s/SAz5eiSOLhsdz7nlSJ1xdA 预见未来丨机器学习:未来十年研究热点 机器学习组 微软研究院AI头条 昨天 编者 ...

  3. 结构体快排回顾(sort)

    一般来说,我做竞赛的时候排序一般用快排 很快很方便 普通sort(从小到大) sort(a,a+n); 直接贴一段代码吧,包含了vector,sort,结构体等简单东西综合 #include < ...

  4. JavaScript快排与原生sort的测试

    今天工作室断网!果断回宿舍,不然各种资料都没有.(他说将来会找到!)不好意思,又哼起来了.进入主题,大家都知道,快排是各种排序算法中,最高效的也是应用最广的,还有更重要的一点,面试特别爱考的! 其实大 ...

  5. 量子隐形传态1 Quantum Teleportation

    量子隐形传态是量子纠缠的又一个应用. 隐形传态,所谓隐形的意思就是没有物质介质就传递了信息,在经典世界,传递信息要有介质,光.电磁波或者其他的什么,但是在量子的世界里,我可以把信息传递给你,并且不传递 ...

  6. [luoguP1056] 排座椅(sort + 模拟)

    传送门 nc题,一直sort就过了 代码 #include <cstdio> #include <iostream> #include <algorithm> #d ...

  7. 5000量子位支持量子编程,D-Wave推出下一代量子计算平台计划

    5000量子位支持量子编程,D-Wave推出下一代量子计算平台计划 近日,全球量子商用化重要参与者 D-Wave 公司又有大动作:推出其5000量子比特量子计算的发展蓝图.D-Wave 下一代量子计算 ...

  8. soj1762.排座椅

    1762. 排座椅 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description 上课的时候总有一些同学和前后左右的人交头接耳,这是令 ...

  9. 普及组2008NOIP 排座椅(贪心+排序)

    排座椅 时间限制: 1 Sec  内存限制: 50 MB提交: 4  解决: 3[提交][状态][讨论版][命题人:外部导入] 题目描述 上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任 ...

随机推荐

  1. C++单继承的构造函数和析构函数调用的顺序

    1.继承构造函数调用顺序以及销毁的过程 先调用父类的构造函数,在调用子类的构造函数,析构函数调用相反.

  2. Ubuntu16.04 - 安装gtk+-3.0和appindicator3-0.1

    今天在Ubuntu16.04里面遇到这样的问题: # pkg-config --cflags gtk+-3.0 appindicator3-0.1Package gtk+-3.0 was not fo ...

  3. Python中进程和线程的总体区别

    Num01–>线程 线程是操作系统中能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位. 一个线程指的是进程中一个单一顺序的控制流. 一个进程中可以并发多条线程,每条线程并行 ...

  4. 对表单控制是否提交 需要在方法名前面加上 return

  5. Weblogic有免费的License了

    分类: 系统运维 曾几何时, 为了找一个不限IP, 不限CPU, 不限时间的Weblogic License, 需要翻遍整个互联网, 这种日子一去不复返了~~~~~ 几个月前, 听到Oracle收购B ...

  6. 【2018北京集训6】Lcm DFT&FWT

    首先我们来看下此题的模数232792561. 232792561=lcm(1,2,3.......20)+1.这个性质将在求值时用到. 我们将n分解质因数,令$m$为$n$的素因子个数,设n=$\Pi ...

  7. rabbitmq使用日记

    一.安装 添加安装源 #echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list ...

  8. hive多表联合查询(GroupLens->Users,Movies,Ratings表)

    hive (UserMovieRating)> create table if not exists Users(                      > UserID int co ...

  9. MyEclipse:详细使用教程

    http://www.56.com/u18/v_MTQwNzY1MTU5.html?fromvsogou=1

  10. Linux的帮助文档命令

    Linux的帮助文档命令 1.man page man是manual(操作手册)的简写,使用方式: man [指令] man date 在显示的内容中查找内容: / + 搜索你的关键字 上下左右键来查 ...