資料結構實現

2021-06-18 06:14:01 字數 993 閱讀 4894

(一)二分法查詢

二分法查詢其實就是折半查詢,一種效率較高的查詢方法。針對有序陣列來查詢的。

主要思想是:(設查詢的陣列期間為array[low, high])

(1)確定該期間的中間位置k

(2)將查詢的值t與array[k]比較。若相等,查詢成功返回此位置;否則確定新的查詢區域,繼續二分查詢。區域確定如下:

a.array[k]>t 由陣列的有序性可知array[k,k+1,……,high]>t;故新的區間為array[low,……,k-1]

b.array[k]

時間複雜度:o(log2n);

public class bubbletest

if(value > array[middle])

if(value < array[middle])

}return -1;

}public static void main(string args)

;int value = binary(a, 9);

system.out.println(value);

}}

(二)快速排序

(二)快速排序演算法

快速排序是盡量避免額外計算的極好例子.其工作方式是在陣列中劃分出小的和大的元素

基本思想是:

從陣列中取出乙個元素作為基準值

把其他元素分為兩組:

「小的」是那些小於基準值的元素。

「大的」是那些大於基準值的元素,

遞迴對這兩個組做排序。

快速排序快速的原因在於:一旦知道了某個元素比基準值小,它就不需要在與那些大的元素比較。而大的元素也不需要在與小的元素比較,這個性質使快速排序比簡單排序、氣泡排序快的多。

時間複雜度:o(nlogn)

public static void quicksort(int a, int start, int end)

if(end-j>1)

}

資料結構 實現棧

include include include define node len sizeof node 1 pstack ptop pstack pbottom都指向節點 typedef struct node pnode,node typedef struct stack pstack,stack...

資料結構 棧實現

棧和佇列不一樣,棧是後進先出。實現時用了陣列儲存棧,陣列大小根據內容自動擴充。廢話不多說,上 c mystack.h pragma once templateclass mystack templateint mystack getcount templatet mystack top templa...

資料結構 C 實現

之前的2周一直在學資料結構,頭都大了。我是之前對資料結構一點認識都沒有,我是直接看書懟的,我看的是 大話資料結構 前面的講解還不錯,到了樹 圖後,就有點看不懂了,因為直接講的 我想一般人類都不可能看得懂,尤其是kmp演算法那,簡直是天書,我最後還是看別人的部落格才勉強參透,但無論如何,大話資料結構的...