用dw做的十二星座網(wǎng)站免費百度貼吧入口
目錄
1.查找
1.查找的基本概念
1.在哪里找?
?2.什么查找?
3.查找成功與否??
4.查找的目的是什么??
5.查找表怎么分類??
6.如何評價查找算法??
7.查找的過程中我們要研究什么??
2.線性表的查找?
1.順序查找?
代碼示例:
?1.順序查找的改進
代碼示例:
2.順序查找的性能分析與特點?
2.折半查找?
代碼示例:
1.折半查找的性能分析與特點?
3.分塊查找(索引順序查找)?
1.分塊查找性能分析與優(yōu)缺點?
3.樹表的查找?
1.二叉排序樹?
1.二叉排序樹的存儲結(jié)構(gòu)
代碼示例:
2.二叉排序樹的遞歸查找?
代碼示例:?
3.二叉排序樹的查找分析?
平衡二叉樹?
4.二叉排序數(shù)的操作-插入?
5.二叉排序樹的操作-刪除?
4.總的代碼
1.查找
1.查找的基本概念
1.在哪里找?
?2.什么查找?
3.查找成功與否??
4.查找的目的是什么??
5.查找表怎么分類??
6.如何評價查找算法??
7.查找的過程中我們要研究什么??
2.線性表的查找?
1.順序查找?
代碼示例:
typedef struct {int key;
}elem;typedef struct {elem *r;int len;
}sstable;sstable st;int search_seq(sstable st,int key) {for(int i = st.len; i >= 1; --i) {if(st.r[i].key == key) return i;return 0;}
}
?
?1.順序查找的改進
代碼示例:
int Search_seq(sstable st,int key) {st.r[0].key = key;int i;for(i = st.len; st.r[i].key != key; --i);return i;
}
?
2.順序查找的性能分析與特點?
?
2.折半查找?
代碼示例:
?
int search_bin(sstable st,int key) {int low = 1;int high = st.len;while(low <= high) {int mid = (low + high) / 2;if(st.r[mid].key == key) return mid;else if(key < st.r[mid].key)high = mid - 1;else low = mid + 1;}return 0;
}
1.折半查找的性能分析與特點?
3.分塊查找(索引順序查找)?
1.分塊查找性能分析與優(yōu)缺點?
3.樹表的查找?
1.二叉排序樹?
1.二叉排序樹的存儲結(jié)構(gòu)
代碼示例:
?
typedef struct {int key;
}elemtype;typedef struct bstnode {elemtype data;struct bstnode *lchild, *rchild;
}bstnode,*bstree;bstree t;
2.二叉排序樹的遞歸查找?
代碼示例:?
bstree searchbst(bstree t,int key) {if((!t) || key == t -> data.key) return t;else if(key < t -> data.key)return searchbst(t -> lchild,key);else return searchbst(t -> rchild,key);
}
3.二叉排序樹的查找分析?
平衡二叉樹?
4.二叉排序數(shù)的操作-插入?
?
5.二叉排序樹的操作-刪除?
4.總的代碼
#include<bits/stdc++.h>
using namespace std;typedef struct {int key;
}elem;typedef struct {elem *r;int len;
}sstable;sstable st;int search_seq(sstable st,int key) {for(int i = st.len; i >= 1; --i) {if(st.r[i].key == key) return i;return 0;}
}int Search_seq(sstable st,int key) {st.r[0].key = key;int i;for(i = st.len; st.r[i].key != key; --i);return i;
}int search_bin(sstable st,int key) {int low = 1;int high = st.len;while(low <= high) {int mid = (low + high) / 2;if(st.r[mid].key == key) return mid;else if(key < st.r[mid].key)high = mid - 1;else low = mid + 1;}return 0;
}typedef struct {int key;
}elemtype;typedef struct bstnode {elemtype data;struct bstnode *lchild, *rchild;
}bstnode,*bstree;bstree t;bstree searchbst(bstree t,int key) {if((!t) || key == t -> data.key) return t;else if(key < t -> data.key)return searchbst(t -> lchild,key);else return searchbst(t -> rchild,key);
}int main() {return 0;
}