欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java常用算法分析和實(shí)現(xiàn) amp

孫婉娜1年前8瀏覽0評論

Java是一種面向?qū)ο缶幊陶Z言,擁有豐富的數(shù)據(jù)結(jié)構(gòu)和算法庫。在開發(fā)過程中,常常需要使用一些常見的算法,如排序、查找、哈希等。下面就來介紹一些Java中常用算法的分析和實(shí)現(xiàn)。

1. 排序算法

/**
 * 快速排序
 *
 * @param arr 待排序數(shù)組
 * @param low 起始位置
 * @param high 結(jié)束位置
 */
public static void quickSort(int[] arr, int low,int high){
if(low< high){
int start = low;
int end = high;
int key = arr[low];
while(start< end){
while(start< end && arr[end] >= key){
end--;
}
if(start< end){
arr[start++] = arr[end];
}
while(start< end && arr[start]< key){
start++;
}
if(start< end){
arr[end--] = arr[start];
}
}
arr[start] = key;
quickSort(arr, low, start-1);
quickSort(arr, start+1, high);
}
}

2. 查找算法

/**
 * 二分查找算法
 *
 * @param arr 待查找數(shù)組
 * @param value 要查找的值
 * @return 找到就返回位置,沒有找到就返回-1
 */
public static int binarySearch(int[] arr, int value) {
int left = 0;
int right = arr.length - 1;
while (left<= right) {
int mid = (left + right) / 2;
if (arr[mid] == value) {
return mid;
} else if (arr[mid]< value) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}

3. 哈希算法

/**
 * 哈希函數(shù)
 *
 * @param str 輸入字符串
 * @param mod 取模數(shù)
 * @return hash值
 */
public static long hashString(String str, long mod) {
long hash = 0;
for (int i = 0; i< str.length(); i++) {
hash = (hash * 31 + str.charAt(i)) % mod;
}
return hash;
}

以上就是Java中常用算法的分析和實(shí)現(xiàn),希望對大家有所幫助。