LeetCode前置課 3 查詢演算法

2021-10-07 21:05:37 字數 854 閱讀 4374

1、二分查詢

//二分查詢,num是要查詢的值

public static int binaryselect(int arr, int num ,int left,int right)

int mind = (right+left)/2;

if(arr[mind]>num)else if(arr[mind]2、插值查詢:

//插值查詢,插值查詢避免了要查詢的值在陣列兩邊的多次查詢的情況,和二分查詢不同的是修改了mind中間值的計算公式,

// 陣列分布均勻的用插值查詢比較好,不均勻的不一定比二分好

public static boolean insertvaluesearch(int array, int num ,int left ,int right)

int mind = left+(right-left)*(num-array[left])/(array[right]-array[left]);//和二分法不同的地方

if(array[mind]>num)else if(array[mind]3、

//斐波那契(**分割法)查詢,和二分法不同的是mind遵循**分割:一部分與全長之比等於另一部分與這部分之比,約等於0.618,要先構建菲波那切陣列

LeetCode前置課 2 八大排序演算法

1 冒泡 冒泡 public static void sortmaopao system.out.println 排序前 arrays.tostring arr int temp for int j 0 jarr i 1 system.out.println 排序後 arrays.tostring ...

leetcode刷題前置知識總結

1 在乙個有序陣列中,找某個數是否存在 2 在乙個有序陣列中,找 某個數最左側的位置 3 在乙個有序陣列中,找 某個數最右側的位置 4 區域性最小值問題 查詢乙個數是否存在 package com.zy.class001 public class code04 b ist system.out.pr...

Thinkphp學習筆記3 前置和後置操作

前置和後置操作指的是在執行某個操作方法之前和之後會自動呼叫的方法,不過僅對訪問控制器有效。其他的分層控制器層和內部呼叫控制器的情況下前置和後置操作是無效的。系統會檢測當前操作是否具有前置和後置操作,如果存在就會按照順序執行,前置和後置操作的定義方式如下 namespace home controll...