当前位置: 首页 > news >正文

最便宜的外贸网站建设/舟山seo

最便宜的外贸网站建设,舟山seo,动态网站制作流程,工程交易服务主页go手动实现哈希表 原理作用 哈希表的作用就是将一个较大范围或者较复杂的数据映射到一个较小的数据(0~N) 哈希算法 1、取模,x % y ,y一般取值为质数,并且要尽可能的离2的整次幂远,这样取值,发生冲突的概率最小 2、解决冲突&a…

go手动实现哈希表

原理作用

哈希表的作用就是将一个较大范围或者较复杂的数据映射到一个较小的数据(0~N)

哈希算法

1、取模,x % y ,y一般取值为质数,并且要尽可能的离2的整次幂远,这样取值,发生冲突的概率最小

2、解决冲突,通常有两种方法,拉链法和开放寻址法

方法

题目:
维护一个集合,支持如下几种操作:“I x”,插入一个数x;
“Q x”,询问数x是否在集合中出现过;
现在要进行N次操作,对于每个询问操作输出对应的结果。输入格式
第一行包含整数N,表示操作数量。接下来N行,每行包含一个操作指令,操作指令为”I x”,”Q x”中的一种。输出格式
对于每个询问指令“Q x”,输出一个询问结果,如果x在集合中出现过,则输出“Yes”,否则输出“No”。每个结果占一行。数据范围
1≤N≤105
−109≤x≤109
输入样例:
5
I 1
I 2
I 3
Q 2
Q 5
输出样例:
Yes
No
*/

1、拉链法

package mainimport ("bufio""fmt""os""strconv""strings"
)const N = 100003var (idx inth   [N]intne  [N]inte   [N]int
)
// 求质数
func primeNumber(i int) {var tag boolfor {for j := 2; j*j < i; j++ {tag = trueif i%j == 0 {tag = falsebreak}}if tag {fmt.Println(i)break}i++}
}
func insert(x int) {k := (x%N + N) % Ne[idx] = xne[idx] = h[k]h[k] = idxidx++
}
func find(x int) {k := (x%N + N) % N// 遍历链表,找到上面与x相等的值for i := h[k]; i != -1; i = ne[i] {if e[i] == x {fmt.Println("Yes")return}}fmt.Println("No")}func readline(r *bufio.Reader) []string {s, _ := r.ReadString('\n')ss := strings.Fields(s)return ss
}
func main() {//将哈希表的初始值设置为-1for i := 0; i < N; i++ {h[i] = -1}var n intfmt.Scanf("%d", &n)r := bufio.NewReader(os.Stdin)for i := 0; i < n; i++ {in := readline(r)op := in[0]switch op {case "I":x, _ := strconv.Atoi(in[1])insert(x)case "Q":x, _ := strconv.Atoi(in[1])find(x)}}
}

2、开放寻址法

package mainimport ("bufio""fmt""os""strconv""strings"
)//const N  = 100003
const N  = 200003 // 大概是需要的2-3倍
const null = 0x3f3f3f3f
var h[N]intfunc find(x int)int {k := (x%N + N) % Nfor h[k]!=null && h[k]!=x{ // 说明该位置已经被占用了k++ // 向后一位移动if k==N{ // 如果看完最后一个位置,k=0 //循环看第一个位置}}//h[k]=xreturn k // 返回下标,如果x在哈希数组h中,就返回x在h中的位置,// 如果不在,就返回应该存储的位置
}
func insert(x int)  {//k := (x%N + N) % N//for h[k]!=null{ // 说明该位置已经被占用了//	k++ // 向后一位移动//}k :=find(x)h[k]=x
}
func query(x int)  {k :=find(x)if h[k]!=null{fmt.Println("Yes")}else {fmt.Println("No")}
}
func readLine(r *bufio.Reader)[]string  {s,_ :=r.ReadString('\n')sSlcie:=strings.Fields(s)return sSlcie
}
func main() {for i:=0;i<N;i++{h[i] = null}var n intfmt.Scan(&n)r :=bufio.NewReader(os.Stdin)for i:=0;i<n;i++{in :=readLine(r)op :=in[0]x,_ :=strconv.Atoi(in[1])k :=find(x)switch op {case "I"://insert(x)h[k] = xcase "Q"://x,_ :=strconv.Atoi(in[1])//query(x)if h[k] == null{fmt.Println("No")}else {fmt.Println("Yes")}}}
}
http://www.lbrq.cn/news/1437463.html

相关文章:

  • 网站点击滚动图片代码/市场营销策划案例经典大全
  • 网站怎么做虚拟连接/小广告清理
  • 如何知道网站的字体/关键词优化是怎样收费的
  • 系统开发北京网站建设/互联网营销软件
  • 东莞设计兼职网站建设/十堰seo优化
  • 制作系部网站首页/百度知道灰色词代发收录
  • wordpress retina/廊坊seo排名
  • 封面新闻是国家级媒体/重庆排名优化整站优化
  • b2b电子商务模式的网站/网站推广软件费用是多少
  • 免费只做网站/网络营销的内容有哪些方面
  • windows和linux做网站/中国十大网站有哪些
  • php盗版视频网站怎么做的/什么建站程序最利于seo
  • 做旅游广告在哪个网站做效果好/泰安网络推广培训
  • 医院招聘网站建设和维护人员/网店如何营销推广
  • 公司logo设计在线制作/许昌seo推广
  • 珠海做企业网站/外贸网站有哪些平台
  • 深圳最好的网站建设/上海b2b网络推广外包
  • wordpress防止爆破/好的seo平台
  • 电子商务网站课程设计总结/网络平台怎么创建
  • 拉企业做网站好干吗/关键词排名优化公司哪家强
  • 淄博 做网站/百度推广seo是什么意思
  • .网站建设的目标/淘宝seo优化排名
  • 网站开发查找漏洞的工具/常德seo公司
  • 长沙市互联网加网站/学seo如何入门
  • 防疫管控优化措施/企业网站seo优化外包
  • 橙云网站建设/手机版百度入口
  • 上海的建设网站首页/哈尔滨网站制作软件
  • 怎么做网站代码/软文代写兼职
  • 网站怎么做关键词/百度营销后台
  • 做网站建设的工资高吗/竞价广告
  • pycharm远程连接服务器跑实验详细操作
  • 云原生存储架构设计与性能优化
  • .Net4.0 WPF中实现下拉框搜索效果
  • Python 类元编程(导入时和运行时比较)
  • LeetCode215~ 234题解
  • Flutter权限管理三步曲:检查、申请、处理全攻略