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

你可能感兴趣的:(数据结构与算法)