发表于: 2017-07-10 21:10:20

1 944


今天完成的事情:

1、学习了乱序的概念及如何乱序数组。

2、加深了对JS的理解。


明天计划的事情:

1、完成任务二杀手、平民页面的编写。


遇到的问题:

1、如何获得一个随机数组?准备分别获得杀手、平名的数组,然后将其随机乱序,从而获得。

2、对于下面乱序的前两种方法还不理解。


收获:

toLowerCase()将字符串所有大写字母编程小写。

toUpperCase()将所有字符串小写字母转换成大写的。

Var mystr=hello, world;

Var ab=mystr.toUpperCase();

parseInt() 函数可解析一个字符串,并返回一个整数。

为什么有的转10进制,有的转16进制?

 return '#'+Math.floor(Math.random()*256).toString(10);中,为什么只乘以一个256?

将一数组乱序排列的几种方法

方法

先随机出已知数组的下标值,然后取出这个数放到另一个数组中,再从已知数组中删除这个数。这种方法的运算次数是根据数组长度而定的,缺点是 大部分运算都耗在删除的判断上,主要是因为 数组不像list那样,能删除一个指定位置的值。

1. //-----------------------------------------------  

2. public int []  m2(int [] arr){  

3.  Random ran = new Random();  

4.  int [] newArr = new int[arr.length];  

5.  int k = 0;  

6.  while (arr.length>0) {  

7.   runCount++;  

8.   int index = ran.nextInt(arr.length);//随即数组下标  

9.   newArr[k++] = arr[index];  

10.   arr = removeElement(arr[index], arr);  

11.  }  

12.  System.out.println("m2运算次数  = "+runCount);  

13.  return newArr;  

14. }  

15.   

16. public int [] removeElement(int ele,int [] arr){  

17.  int [] arr2 =new int[arr.length-1];  

18.  int k = 0;  

19.  for (int i = 0; i < arr.length; i++) {  

20.   runCount++;  

21.   if(arr[i]!=ele){  

22.    arr2[k++] = arr[i];  

23.   }  

24.  }  

25.  return arr2;  

26. }  

 

方法

每次从已知数组随机一个数,然后将数组的最后一个值 赋值给前面随机到的数的位置上,然后将长度-1,再从原数组下标-1的数组中随机。 

1. public int []  m3(int [] arr) {  

2.  int [] arr2 =new int[arr.length];  

3.  int count = arr.length;  

4.  int cbRandCount = 0;// 索引  

5.  int cbPosition = 0;// 位置  

6.  int k =0;  

7.  do {  

8.   runCount++;  

9.   Random rand = new Random();  

10.   int r = count - cbRandCount;  

11.   cbPosition = rand.nextInt(r);   

12.   arr2[k++] = arr[cbPosition];  

13.   cbRandCount++;  

14.   arr[cbPosition] = arr[r - 1];// 将最后一位数值赋值给已经被使用的cbPosition  

15.  } while (cbRandCount < count);  

16.  System.out.println("m3运算次数  = "+runCount);  

17.  return arr2;  

18. }  

 

 

方法

定义一个变量为随机变量,其范围最大值为数组的长度,然后将其取为all[i];然后分别分别依次取出元素。

var rand=parseInt(Math.random()*len);
var temp=all[rand];
all[rand]=all[i];
all[i]=temp;

 




返回列表 返回列表
评论

    分享到