資料結構之查詢演算法總結

2021-08-07 05:43:31 字數 2098 閱讀 8704

基礎知識:

二分查詢演算法:有序表、順序儲存、複雜度o(logn),一般用於強調有序陣列查詢時。

雜湊表:o(1)時間根據關鍵字,得到所需的值。

二叉搜尋樹(排序樹):根節點左邊值小於根結點,右邊值大於根結點。

int binary_search(int* data, int length, int key)

return -1;

}

1 把乙個陣列最開始的若干個元素搬到陣列的末尾稱為陣列的旋轉。

輸入乙個遞增的排序陣列的旋轉,輸出旋轉陣列的最小元素。例如是的乙個旋轉,最小值為1.**

int

mininorder(int* data, int low, int high)

return min;

}int

getnumsmall(int* data, int length)

的情況,只能順序查詢最小值

return mininorder(data, low, high);

if (data[mid] >= data[high])

low = mid;

else

if(data[mid]<=data[high])

high = mid;

}return data[high];

}

2 數字在排序陣列中出現的次數

統計乙個陣列在排序陣列中出現的次數,例如輸入,和數字3,輸出4。

int getfirstk(int* data, int k, int start, int end)   //遞迴寫法

else

if (data[mid] > k)

end = mid - 1;

else

start = mid + 1;

return getfirstk(data, k, start, end);

}int getfirstk(int* data, int k, int start, int end) //迴圈寫法

else

if (data[mid] > k)

end = mid - 1;

else

start = mid + 1;

}return -1;

}int getlastk(int* data,int

length, int k, int start, int end)

else

if (data[mid] > k)

end = mid - 1;

else

start = mid + 1;

return getlastk(data,length, k, start, end);

}int getnumk(int* data, int

length, int k)

return number;

}

3 第乙個只出現一次的字元;

for (int i = 0; i < s.size(); ++i)

hash[s[i]]++;

for (int i = 0; i < s.size(); ++i)

return

'\0';}

4 二叉搜尋樹的後序遍歷序列

輸入乙個整數陣列,判斷是否為某二叉搜尋樹的後序遍歷序列。假設輸入陣列的任意兩個數字不相同。

bool isbst(int data, int

length)

for (j = i; j < length; ++j)

bool left = true;

if (i > 0)

left = isbst(data, i);

bool right = true;

if (j < length - 1)

right = isbst(data+i, length-1-i);

return (left&&right);

}

資料結構之查詢演算法總結筆記

查詢演算法 一 查詢的基本概念 查詢,也可稱檢索,是在大量的資料元素中找到某個特定的資料元素而進行的工作。查詢是一種操作。二 順序查詢 針對無序序列的一種最簡單的查詢方式。時間複雜度為o n 三 折半查詢 針對已排序序列的一種查詢方式。並且只適用於順序儲存結構的序列。要求序列中的元素基本不變,在需要...

資料結構之查詢演算法總結筆記

查詢演算法 一 查詢的基本概念 查詢,也可稱檢索,是在大量的資料元素中找到某個特定的資料元素而進行的工作。查詢是一種操作。二 順序查詢 針對無序序列的一種最簡單的查詢方式。時間複雜度為o n 三 折半查詢 針對已排序序列的一種查詢方式。並且只適用於順序儲存結構的序列。要求序列中的元素基本不變,在需要...

資料結構之查詢演算法

在日常生活中,幾乎每天都要進行一些查詢的工作,在 簿中查閱某個人的 號碼 在電腦的資料夾中查詢某個具體的檔案等等。本節主要介紹用於查詢操作的資料結構 查詢表。查詢表是由同一型別的資料元素構成的集合。例如 號碼簿和字典都可以看作是一張查詢表。一般對於查詢表有以下幾種操作 在查詢表中只做查詢操作,而不改...