各種演算法五

2022-01-22 16:05:09 字數 1994 閱讀 8511

各種演算法五

我們來看看基本的超找滴呀;

在我們的演算法中,有一種叫做線性查詢。

分為:順序查詢。

折半查詢。

順序查詢:

這種非常簡單,就是過一下陣列,乙個乙個的比,找到為止。

//

基本的順序查詢太簡單,其實就是找到你想要的額匹配項了滴呀;

public

static

void

lookup()

;var result = getindex(list, 3

);

if (result != -1

) console.writeline(

"索引位置為:

" +result);

else

console.writeline(

"沒有找到!");

console.read();

}static

int getindex(list list, int

key)

return -1

; }

分半查詢方式滴呀;這種方式,僅僅限於我們的奇數個值滴呀;可惜了~~~

static

int getindex01(list list, int

key)

if (list[len - 1-i] ==key)

}return -1

; }

當然,我們可以進一步的各種優化滴呀;效果還是不錯滴呀;

這樣就算找到了我們比較通用的方法了;效果還是不錯滴呀;恩恩,樣滴呀;

static

int getindex02(list list, int

key)

else

if (list[high] ==key)

else}}

return -1

; }

總結:

如果使用平法的話;就會出現下面額情況滴呀;

如果是偶數的話,那麼就敲好評分了;

如果是奇數的話,那麼就會出現左右相差一的情況;

如果是low 和 high 兩個指標的話,應該就是

左右兩邊剛好相等;

如果是奇數的話,low 和high 會指到統一index,然後再比較;

效果非常好的呀; 

折半查詢

使用折半查詢是必須有前提滴呀;

第二: 這種查詢只限於線性的順序儲存結構。

好了,繼續敲**,ps,今天是星期五,好吧~

//

上面的查詢,技術含量太低了一點底呀;

//是灰常滴呀;

public

static

intcontinutelookupinformation()

;int key = 10

;

int low = 0

;

int high = list.count - 1

;

while (low <=high)

else

else}}

return -1;//

沒有找到我們想要的值滴呀;

}

這裡補充乙個,關於陣列,奇數後偶的折半問題;

x奇數: 1 2 3 4 5 

y偶數:1 2 3 4

x/2=2;

y/2=2;

因為都是int 型別的;

x,第一次比較的正好是3

第二次, low=0 high=1; (low+hig)/2=0  如果還沒找到到  (low+high)=1

這樣左右兩個數都比較了;

實現的方式也是多種多樣滴呀;

各種排序演算法

交換函式 void swap int a,int b 氣泡排序 氣泡排序 bubble sort,台灣譯為 泡沫排序或氣泡排序 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排...

各種排序演算法

include include include using namespace std void swap int a,int b void output int a,int n 直接插入排序 時間複雜度o n 2 void insertsort int a,int n 折半插入排序 o n 2 只...

各種排序演算法

排序演算法是一種基本並且常用的演算法。由於實際工作中處理的數量巨大,所以排序演算法 對演算法本身的速度要求很高。而一般我們所謂的演算法的效能主要是指演算法的複雜度,一般用o方法來表示。在後面我將 給出詳細的說明。對於排序的演算法我想先做一點簡單的介紹,也是給這篇文章理乙個提綱。我將按照演算法的複雜度...