写博客只是为了记录一些知识,刚刚入行,如果写的不对请各位多多指正。
刚开始看算法一书,温习了比较初级的二分法,如下图
private static int BinarySearch(int[] arr,int key) {
int begin =0;
int end =arr.length-1;
while(begin<=end) {
int mid = begin+ (end-begin)/2;
if(key<arr[mid]) {
end = arr[mid]-1;
}else if(key>arr[mid]){
begin = arr[mid]+1;
}else {
return mid;
}
}
return -1;
}
二分法的前提是数组是需要排序的java中是有写好的方法的Arrays.sort()或者Collections.sort()
突然想到有没有打乱顺利的方法呢,于是乎上网查了下 别人写的实现,后来发现java也有写好的方法Collections.shuffle()
public static void shuffle(List<?> list) {
Random rnd = r;
if (rnd == null)
r = rnd = new Random(); // harmless race.
shuffle(list, rnd);
}
public static void shuffle(List<?> list, Random rnd) {
int size = list.size();
if (size < SHUFFLE_THRESHOLD || list instanceof RandomAcce

这篇博客探讨了如何在Java中使用Collections.shuffle()方法来打乱集合顺序。作者通过对比ArrayList和LinkedList的不同处理方式,解释了RandomAccess接口在其中的作用,并分析了shuffle()方法的效率差异。文章还提及了Java生成随机数的几种方法,但主要焦点集中在源码分析上。
最低0.47元/天 解锁文章
578

被折叠的 条评论
为什么被折叠?



