這裡是最簡單的二分,分塊和hash表
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
using
namespace
std;
typedef
long
long ll;
#define maxl 100
#define maxi 20
#define hash_size 100
//雜湊表 鏈式儲存法解決衝突
typedef
struct hash_table*hash_tableptr;
int hash(int key);
int search(hash_tableptr hash, int key);
//void randperm(int a,int num)
random_shuffle(temp.begin(), temp.end());
for (int i = 0; i < 100; i++)
}//二分查詢
int binarysearch(int a,int st,int ed,int key)
else
if(a[mid]1;
}else
return mid;
}return0;}
void search_1() */
sort(a, a + 100);
for(int i=0;i<100;i++)
cout
<" ";
cout
while (t--) else
cout
<< s << " 不存在的!"
<< endl;
}}//分塊查詢
typedef
int keytype;
typedef
char infotype[10];
typedef
struct
nodetype;
typedef nodetype seqlist[maxl]; //順序表型別
typedef
struct
idxtype;
typedef idxtype idx[maxi]; //索引表型別
int idxsearch(idx i,int m,seqlist r,int n,keytype k)
i=i[high+1].link;
while (i<=i[high+1].link+b-1 && r[i].key!=k) i++;
if (i<=i[high+1].link+b-1)
return i+1;
else
return0;}
void search_2();
idx i= ,,,,};//索引表
keytype a= ;
int t=20;
for (i=0; iwhile(t--)}//
int hash(int key)
int search_hash(hash_tableptr hash, int key)
return
0; }
}void search_3();
for (i = 0; i < hash_size; i++)
for (i = 0; i < hash_size; i++)
}int t=10;
while(t--)
}int main()
資料結構 佇列的三種實現方式
佇列是一種只在一端插入 隊尾 另一端刪除 隊首 的有序線性表,佇列中第乙個插入的元素也是第乙個被刪除的元素,所以,佇列是一種先進先出 fifo 線性表。1 主要操作 2 輔助操作 1 基於簡單迴圈陣列的實現 package datastructure public class arrayqueue ...
資料結構分三種 邏輯,物理,運算
一 資料的邏輯結構 指反映資料 元素之間的邏輯關係的 資料結構,其中的邏輯關係是指資料元素之間的前後件關係,而與他們在計算機中的儲存位置無關。邏輯結構包括 集合 資料結構中的元素之間除了 同屬乙個集合 的相互關係外,別無其他關係 2.線性結構 資料結構中的元素存在一對一的相互關係 3.樹形結構 資料...
Redis 三種資料結構與事務
定位,附近的人,打車距離計算,學生請假還假打卡時判斷是否在學校中 redis的geo在3.2就推出了,這個功能可以推算地理位置的資訊,兩地之間的距離 geoadd 新增地理位置 geoadd key 緯度 經度 名稱 規則 無法直接新增兩極,南極北極,一般正常情況下城市資料是直接錄入的 geoadd...