算法说明

Bogo排序是交换排序的一种,它是一种随机排序,也是一种没有使用意义的排序,同样也是一种我觉得很好玩的排序。

举个形象的例子,你手头有一副乱序的扑克牌,然后往天上不停的扔,那么有一定机率会变成有序的。

哈哈,就是这样。

看一下代码大家就知道了。

代码

使用的是java

package hark.sort.exchangesort;

import java.util.Random;

/*
* Bogo排序
*/
public class BogoSort {
public static void main(String[] args) {
int[] arrayData = { 2, 4, 8, 9, 1 };
BogoSortMethod(arrayData);
for (int integer : arrayData) {
System.out.print(integer);
System.out.print(" ");
}
} public static void BogoSortMethod(int[] arrayData) {
while (!WhetherSort(arrayData)) {
Sort(arrayData);
}
} static Random random = new Random();
static int temp,swapIndex; public static void Sort(int[] arrayData) {
for (int i = 0; i < arrayData.length; i++) {
swapIndex = random.nextInt(i + 1);
temp = arrayData[i];
arrayData[i]= arrayData[swapIndex];
arrayData[swapIndex] = temp;
}
} public static boolean WhetherSort(int[] arrayData) {
for(int i = 0;i<arrayData.length-1;i++)
{
if(arrayData[i]> arrayData[i+1])
{
return false;
}
}
return true;
}
}

  

参考

http://zh.wikipedia.org/zh-cn/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95

最新文章

  1. matlab 曲线拟合
  2. Daily Scrum 12.14
  3. 各种排序算法的分析及java实现
  4. Swift3.0P1 语法指南——字符串与字符
  5. 【knowledgebase】不要在一个很大的RDD上调用collect
  6. ylbtech-Bill(发票管理)-数据库设计
  7. DelphiXE Android的所有权限按照分类总结说明
  8. &amp;&amp;与&amp;
  9. [转]操作xml,将xml数据显示到treeview的C#代码
  10. 解决Ubuntu 16.04 软件中心闪退
  11. 分享一个 jmeter ant的build.xml
  12. nodejs辅助前台开发系列(1) 搭建简单HTML开发环境
  13. MySQL5.7.21解压版安装详细教程以及一些问题的解决
  14. java Comparable and Comparator
  15. 朱晔和你聊Spring系列S1E10:强大且复杂的Spring Security(含OAuth2三角色+三模式完整例子)
  16. 本地项目提交到github和提交更新(转)
  17. 【工具相关】Web-Sublime Text2-注释
  18. Service 动态更新 UI
  19. AVL树原理及实现 +B树
  20. Android——Fragment+Editext总结

热门文章

  1. ubuntu查看版本命令
  2. UVALive 6124 Hexagon Perplexagon 题解
  3. Object学习笔记
  4. editplus快捷键大全其他editplus快捷键
  5. 畅通工程再续(MST)
  6. smb
  7. 提高php运行效率的50个技巧
  8. 自动化测试工具Selenium和QTP的比较
  9. 小白科普之JavaScript的数组
  10. lvs之dr技术的学习与实践