写博客只是为了记录一些知识,刚刚入行,如果写的不对请各位多多指正。
刚开始看算法一书,温习了比较初级的二分法,如下图
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