java数组随机排序实现代码

例一

 代码如下 复制代码
import java.lang.Math;
import java.util.Scanner;
class AarrayReverse
{
 public static void main(String args[])
 {
  int a[]=new int[20];
  for(int i=0;i<=15;i++)
  {
   Scanner sca=new Scanner(System.in);
   System.out.println("请输数组元素a["+"]");
   a[i]=sca.nextInt();
  }
  for(int i=0;i<=100;i++)
  {
   int middle=(int)(a.length/2*Math.random());
   int radius=(int)(middle*Math.random());
   int t;
   t=a[middle-radius+1];
   a[middle-radius+1]=a[middle+radius+3];
   a[middle+radius+3]=t;
  }
  for(int i=0;i<a.length;i++)
  System.out.print(a[i]+" ");
  System.out.println();
 }
}

当然这里的数组可以自己定义.
循环的次数越多越好..

例二

 代码如下 复制代码

import java.util.Date;
import java.util.Random;
/*
* 随即排列数组,给定一个数组,随即排列其中的元素,目前主要有两种方法
*/
public class RandomSort {

public static void main(String args[]){
int data[]=new int[]{1,42,51,62,8,94,23,13,40,5};
//int p[]=getRandom(1,-8,100);
//show(p);
show(data);
permuteBySort(data);
show(data);
randomizeInPlace(data);
show(data);
}

/*
* 随机排列数组,使用优先级方式,每个数组元素A[i] 对应一个优先级P[i],
* 然后依据优先级对数组进行排序
*/
private static void permuteBySort(int[] data)
{
int len=data.length;
int len3=len*len*len;
int P[]=getRandom(1,len3,len);

//冒泡排序
for(int i=len-1; i>0; i--)
{
for(int j=0; j<i ; j++)
{
if(P[j]>P[j+1])
{
int temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;

temp=P[j];
P[j]=P[j+1];
P[j+1]=temp;
}
}
}
}
/*
* 元素A[i]是从 元素A[i]到A[n]中随机选取的
*/
private static void randomizeInPlace(int[] data)
{
Date dt=new Date();
Random random=new Random(dt.getSeconds());
int len=data.length;
for(int i=0; i<len; i++)
{
int pos=(int)(random.nextDouble()*(len-i+1)+i)-1;
int temp=data[i];
data[i]=data[pos];
data[pos]=temp;
}
}

/*
* 获得在a到b之间的n个随机数
*/
private static int[] getRandom(int a,int b,int n)
{
if(a>b)
{
int temp=a;
a=b;
b=temp;
}

Date dt=new Date();
Random random=new Random(dt.getSeconds());
int res[]=new int[n];
for(int i=0; i<n; i++)
{
res[i]=(int)(random.nextDouble()*(Math.abs(b-a)+1))+a;
}
return res;
}

private static void show(int[] data)
{
System.out.println("========================");
for(int i = 0; i < data.length; i++)
{
System.out.print(data[i] + " ");
}
System.out.println();
System.out.println("========================");
}
}

 

时间: 2024-10-27 10:17:08

java数组随机排序实现代码的相关文章

JS随机洗牌算法之数组随机排序_javascript技巧

推荐阅读:JavaScript学习笔记之数组的增.删.改.查 JavaScript学习笔记之数组求和方法 JavaScript学习笔记之数组随机排序 洗牌算法是一个比较形象的术语,本质上让一个数组内的元素随机排列.举例来说,我们有一个如下图所示的数组,数组长度为 9,数组内元素的值顺次分别是 1~9: 从上面这个数组入手,我们要做的就是打乱数组内元素的顺序: 代码实现 维基百科上的 Fisher–Yates shuffle 词条对洗牌算法做了详细介绍,下面演示的算法也是基于其中的理论编写的: A

php数组随机排序几种方法

php 中可以使用shuffle函数实现数组随机排序功能.  代码如下 复制代码 <?php $test=array(); $test[]=array(         'title'=>'Q1.较为科学的安全期算法是什么?',         ); $test[]=array(         'title'=>'Q2.较为科学的安全期算法是什么?',         ); $test[]=array(         'title'=>'Q3.较为科学的安全期算法是什么?',

关于JavaScript的数组随机排序

JavaScript 开发中有时会遇到要将一个数组随机排序(shuffle)的需求,一个常见的写法是这样: function shuffle(arr) {       arr.sort(function () {          return Math.random() - 0.5;       });    }  或者使用更简洁的 ES6 的写法: function shuffle(arr) {        arr.sort(() => Math.random() - 0.5);    }

JavaScript实现数组随机排序的方法

  本文实例讲述了JavaScript实现数组随机排序的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 function Shuffle(o) { for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x); return o; }; 使用方法: ? 1 2 3 4 5 6 7 8 var testArray = [1,2,3,4,5];

php数组随机排序实现方法

 本文实例讲述了php数组随机排序实现方法.分享给大家供大家参考.具体实现方法如下:   1 2 3 4 5 <?php $array = array('A','2','3','4','5','6','7','8','9','10','J','Q','K'); shuffle($array); //随机排序数组 print_r($array); //输出数组 ?> 运行结果如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Array ( [0] =>

JavaScript学习笔记之数组随机排序_javascript技巧

推荐阅读:JavaScript学习笔记之数组求和方法 JavaScript学习笔记之数组的增.删.改.查 JavaScript中提供了sort()和reverse()方法对数组项重新排序.但很多时候这两个方法无法满足我们实际业务的需求,比如说扑克牌游戏中的随机洗牌. 在这篇文章一起来学习如何完成上面这个示例的效果,以及一些有关于数组随机排序的相关知识. 在网上查了一下有关于数组随机排序的相关资料,都看到了Math.random()的身影.打开浏览器控制器,输入: Math.random() 从图

JavaScript实现数组随机排序的方法_javascript技巧

本文实例讲述了JavaScript实现数组随机排序的方法.分享给大家供大家参考.具体实现方法如下: function Shuffle(o) { for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x); return o; }; 使用方法: var testArray = [1,2,3,4,5]; Shuffle(testArray); // jQuery

php shuffle()对数组随机排序代码

shuffle() 函数把数组中的元素按随机顺序重新排列. 若成功,则返回 TRUE,否则返回 FALSE. 注释:本函数为数组中的单元赋予新的键名.这将删除原有的键名而不仅是重新排序. 注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现已被自动完成 <?php教程 $my_array = array("a" => "Dog", "b" => "Cat&q

java 数组的排序方法程序

对数组进行排序   比如有一个整型数组:       int[] intArray = new int[] {4, 1, 3, -23}; 我们如何进行排序呢?你这个时候是否在想快速排序的算法?看看下面的实现方法:       import java.util.*;     public class Sort{         public static void main(String[] args){             int[] intArray = new int[] {4, 1,