Merge pull request #96 from Slone123c/patch
Hashing search and test using go
This commit is contained in:
		
							
								
								
									
										29
									
								
								codes/go/chapter_searching/hashing_search.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								codes/go/chapter_searching/hashing_search.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | |||||||
|  | // File: binary_search.go | ||||||
|  | // Created Time: 2022-12-12 | ||||||
|  | // Author: Slone123c (274325721@qq.com) | ||||||
|  |  | ||||||
|  | package chapter_searching | ||||||
|  |  | ||||||
|  | import . "github.com/krahets/hello-algo/pkg" | ||||||
|  |  | ||||||
|  | /* 哈希查找(数组) */ | ||||||
|  | func hashingSearch(m map[int]int, target int) int { | ||||||
|  | 	// 哈希表的 key: 目标元素,value: 索引 | ||||||
|  | 	// 若哈希表中无此 key ,返回 -1 | ||||||
|  | 	if index, ok := m[target]; ok { | ||||||
|  | 		return index | ||||||
|  | 	} else { | ||||||
|  | 		return -1 | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* 哈希查找(链表) */ | ||||||
|  | func hashingSearch1(m map[int]*ListNode, target int) *ListNode { | ||||||
|  | 	// 哈希表的 key: 目标结点值,value: 结点对象 | ||||||
|  | 	// 若哈希表中无此 key ,返回 nil | ||||||
|  | 	if node, ok := m[target]; ok { | ||||||
|  | 		return node | ||||||
|  | 	} else { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										35
									
								
								codes/go/chapter_searching/hashing_search_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								codes/go/chapter_searching/hashing_search_test.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | |||||||
|  | // File: binary_search.go | ||||||
|  | // Created Time: 2022-12-12 | ||||||
|  | // Author: Slone123c (274325721@qq.com) | ||||||
|  |  | ||||||
|  | package chapter_searching | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"fmt" | ||||||
|  | 	. "github.com/krahets/hello-algo/pkg" | ||||||
|  | 	"testing" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func TestHashingSearch(t *testing.T) { | ||||||
|  | 	target := 3 | ||||||
|  | 	/* 哈希查找(数组) */ | ||||||
|  | 	nums := []int{1, 5, 3, 2, 4, 7, 5, 9, 10, 8} | ||||||
|  | 	// 初始化哈希表 | ||||||
|  | 	m := make(map[int]int) | ||||||
|  | 	for i := 0; i < len(nums); i++ { | ||||||
|  | 		m[nums[i]] = i | ||||||
|  | 	} | ||||||
|  | 	index := hashingSearch(m, target) | ||||||
|  | 	fmt.Println("目标元素 3 的索引 = ", index) | ||||||
|  |  | ||||||
|  | 	/* 哈希查找(链表) */ | ||||||
|  | 	head := ArrayToLinkedList(nums) | ||||||
|  | 	// 初始化哈希表 | ||||||
|  | 	m1 := make(map[int]*ListNode) | ||||||
|  | 	for head != nil { | ||||||
|  | 		m1[head.Val] = head | ||||||
|  | 		head = head.Next | ||||||
|  | 	} | ||||||
|  | 	node := hashingSearch1(m1, target) | ||||||
|  | 	fmt.Println("目标结点值 3 的对应结点对象为 ", node) | ||||||
|  | } | ||||||
| @@ -53,7 +53,16 @@ comments: true | |||||||
| === "Go" | === "Go" | ||||||
|  |  | ||||||
|     ```go title="hashing_search.go" |     ```go title="hashing_search.go" | ||||||
|  |     /* 哈希查找(数组) */ | ||||||
|  |     func hashingSearch(m map[int]int, target int) int { | ||||||
|  |     // 哈希表的 key: 目标元素,value: 索引 | ||||||
|  |     // 若哈希表中无此 key ,返回 -1 | ||||||
|  |         if index, ok := m[target]; ok { | ||||||
|  |             return index | ||||||
|  |         } else { | ||||||
|  |             return -1 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|     ``` |     ``` | ||||||
|  |  | ||||||
| === "JavaScript" | === "JavaScript" | ||||||
| @@ -121,7 +130,16 @@ comments: true | |||||||
| === "Go" | === "Go" | ||||||
|  |  | ||||||
|     ```go title="hashing_search.go" |     ```go title="hashing_search.go" | ||||||
|  |     /* 哈希查找(链表) */ | ||||||
|  |     func hashingSearch1(m map[int]*ListNode, target int) *ListNode { | ||||||
|  |         // 哈希表的 key: 目标结点值,value: 结点对象 | ||||||
|  |         // 若哈希表中无此 key ,返回 nil | ||||||
|  |         if node, ok := m[target]; ok { | ||||||
|  |             return node | ||||||
|  |         } else { | ||||||
|  |             return nil | ||||||
|  |         } | ||||||
|  |     }  | ||||||
|     ``` |     ``` | ||||||
|  |  | ||||||
| === "JavaScript" | === "JavaScript" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user