用于排序或排列排序的 Java 程序
原文:https://www . geesforgeks . org/Java-program-for-bogo sort-or-arrange-sort/
BogoSort 也称为排列排序、愚蠢排序、缓慢排序、猎枪排序或猴子排序,是一种基于生成和测试范式的特别无效的算法。该算法连续生成输入的排列,直到找到一个排序的。( Wiki ) 例如,如果使用 bogosort 对一副牌进行排序,它将包括检查该副牌是否有序,如果没有,则将该副牌抛向空中,随机捡起牌,并重复该过程直到该副牌被排序。
伪代码:
while not Sorted(list) do
shuffle (list)
done
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to implement BogoSort
public class BogoSort {
// Sorts array a[0..n-1] using Bogo sort
void bogoSort(int[] a)
{
// if array is not sorted then shuffle the
// array again
while (isSorted(a) == false)
shuffle(a);
}
// To generate permutation of the array
void shuffle(int[] a)
{
// Math.random() returns a double positive
// value, greater than or equal to 0.0 and
// less than 1.0.
for (int i = 0; i < a.length; i++)
swap(a, i, (int)(Math.random() * i));
}
// Swapping 2 elements
void swap(int[] a, int i, int j)
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
// To check if array is sorted or not
boolean isSorted(int[] a)
{
for (int i = 1; i < a.length; i++)
if (a[i] < a[i - 1])
return false;
return true;
}
// Prints the array
void printArray(int[] arr)
{
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i] + " ");
System.out.println();
}
public static void main(String[] args)
{
// Enter array to be sorted here
int[] a = { 3, 2, 5, 1, 0, 4 };
BogoSort ob = new BogoSort();
ob.bogoSort(a);
System.out.print("Sorted array: ");
ob.printArray(a);
}
}
Output:
Sorted array: 0 1 2 3 4 5
更多详情请参考 BogoSort 或排列排序整篇文章!
版权属于:月萌API www.moonapi.com,转载请注明出处