zoukankan      html  css  js  c++  java
  • Hark的数据结构与算法练习之Bogo排序

    算法说明

    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

  • 相关阅读:
    Aop——面向切面编程
    认识界上最流行的Api框架——swagger
    手把手SSM框架实战
    面试题
    重新拾起JavaSE的日子
    使用IntelliJ IDEA创建第一个Maven项目
    Java面试必考题
    Vue项目——去哪网(首页部分)
    Vue项目的准备
    vue.js ③
  • 原文地址:https://www.cnblogs.com/hark0623/p/4353686.html
Copyright © 2011-2022 走看看