ค้นหา
  
Search Engine Optimization Services (SEO)

การค้นหาแบบทวิภาคอย่างมีเอกรูป

การค้นหาแบบทวิภาคอย่างมีเอกรูป (อังกฤษ: Uniform binary search) เป็นการค้นหาแบบทวิภาค (binary search) ชนิดหนึ่งซึ่งลดขนาดการทำงานของการค้นหาแบบปกติลง ขั้นตอนวิธีนี้ได้ถูกคิดค้นขึ้นโดย โดนัลด์ คนูธ และได้เขียนแนวคิดและการพิสูจน์ประสิทธิภาพไว้ในหนังสือ The Art of Computer Programming,Volume 3

ลักษณะการทำงานโดยรวมของการค้นหาแบบทวิภาคอย่างมีเอกรูป จะคล้ายๆกับการค้นหาแบบทวิภาคแบบธรรมดา แต่จะต่างกันที่การเลือกจุดพิจารณาว่าจะคิดจากตัวแปร การค้นหาแบบทวิภาคอย่างมีเอกรูป ได้ทำการคำนวณค่า ที่จะพิจารณาไว้ก่อนค้นหานั้น จะทำให้ความเร็วทำงานเพิ่มขึ้นโดยเฉลี่ยประมาณ 17% เทียบกับการค้นหาแบบทวิภาคแบบธรรมดา แต่ประสิทธิภาพเชิงเวลาที่คำนวณได้จะมีค่าเท่ากันกับ ประสิทธิภาพเชิงเวลาของการค้นหาแบบทวิภาพแบบธรรมดา นั่นคือ O(log n) ดังนั้นขั้นตอนวิธีแบบการค้นหาแบบทวิภาคอย่างมีเอกรูป จึงไม่ค่อยได้ถูกนำไปใช้กันมากนัก ทั้งนี้อาจเกิดจากการเขียนโค้ดที่ยุ้งยากกว่า แต่ได้ประสิทธิภาพเชิงเวลาเท่ากับการค้นหาแบบทวิภาพแบบธรรมดา

การค้นหาแบบทวิภาคอย่างมีเอกรูป จะมีแนวคิดคล้ายๆกับการค้นหาแบบทวิภาค แต่จะต่างกันตรงที่ วิธีค้นหาในการค้นหาแบบทวิภาคจะเสมือนการหักครึ่งการพิจารณาไปเรื่อยๆ จนสามารถสรุปได้ว่าเจอตัวที่ค้นหาหรือไม่ ส่วนการค้นหาแบบทวิภาคอย่างมีเอกรูปจะไม่ได้ทำการหักครึ่งค้นหา แต่ลำดับการค้นหาจะเป็นไปตามค่าที่เราคำนวณไว้ตั้งแต่ก่อนค้นหาแล้ว

สำหรับขั้นตอนวิธีทำงานของ Uniform Binary Search เริ่มต้นจากการสร้าง อาเรย์สำรวจ ขึ้นมาไว้เก็บดัชนีที่จะใช้กระโดดไปพิจารณาในอาเรย์ข้อมูลของเรา โดยตั้งค่าเริ่มต้นให้เป็น 0 ทั้งหมด จากนั้นเราจะสร้างฟังก์ชันขึ้นมา ซึ่งฟังก์ชันนี้จะมีหน้าที่ในการเติมค่าดัชนีลงในอาเรย์สำรวจ เพื่อเป็นการบอกระยะของตำแหน่งที่จะพิจารณาถัดไปเมื่อเทียบกับตำแหน่งปัจจุบัน โดยจะมีวิธีการเติมค่าของอาเรย์สำรวจ ตามตัวอย่างโค้ดภาษา C ด้านล่าง

อธิบายการทำงานของฟังก์ชันได้ดังนี้ power เป็นตัวแปรไว้เก็บค่า 2^n โดยกำหนดตัวแปร n ให้เริ่มที 0 ส่วนตัวแปร i เป็น ดันชีชี้ตำแหน่งของ อาเรย์สำรวจและภายในวงวนจะทำการเติมค่าใน อาเรย์สำรวจ ไปเรื่อยๆ จนกว่าจะเติมด้วยเลข 0 จึงหยุดวงวน (ซึ่งแสดงว่าระยะกระโดดเพื่อไปยังตำแหน่งอื่นเป็น 0 ก็หมายถึงไม่ต้องกระโดแล้ว) ส่วนวิธีเติมเลขลงไปใน อาเรย์สำรวจ นั้นได้มาจากทางสูตรคณิตศาสตร์ที่อยู่ในหนังสือ the art of computer programming หน้า 415 สูตรที่ 6 DELTA[j]=?N+2j?12j?,for 1?j??lg?N?+2{\displaystyle {\text{DELTA}}[j]=\left\lfloor {\frac {N+2^{j-1}}{2^{j}}}\right\rfloor ,\qquad {\text{for }}1\leq j\leq \lfloor \lg N\rfloor +2} ซึ่งได้มาจากการพิสูจน์และสรุปผลทางคณิตศาสตร์ เพื่อประกันว่าการกระโดดแบบนี้จะพิจารณาข้อมูลภายในอาเรย์ข้อมูลของเราได้อย่างครบถ้วนแล้ว

ส่วนต่อมาจะเป็นส่วนฟังก์ชัน ของการค้นหาข้อมูลในอาเรย์ ข้อมูลของเราโดยลักษณะการทำงานทั่วๆไปจะเหมือนกันการค้นหาแบบทวิภาคแบบธรรมดา แต่จะเปลี่ยนจากการคำนวณค่าของการกระโดด จากตัวแปรที่ชื่อ left,right ที่รับเข้ามา เป็นการอ้างอิงระยะการกระโดดจากอาเรย์สำรวจ ซึ่งมีผลทำให้ใช้เวลาเร็วกว่า Binary Search ซึ่งตัวอย่างโค้ดภาษา C การทำงานของฟังก์ชันนี้ มีดังนี้

อธิบายการทำงานของฟังก์ชัน ใน 2 กรณีแรก คือการเจอข้อมูลที่ค้นหาจะคืนค่า ตำแหน่งที่พบ ส่วนถ้าไม่เจอข้อมูลใดเลย (ภายในอาเรย์สำรวจ จะเก็บค่า 0 คือ ไม่ต้องกระโดดต่อแล้ว) ก็จะคืน -1 ส่วนกรณีอื่นๆก็จะทำงานเหมือนกับ Binary Search ปกติ กล่าวคือ จะเทียบค่าที่ต้องการค้นหากับ ค่าของอาเรย์ข้อมูลว่ามากกว่าหรือน้อยกว่าข้อมูลในช่องที่กำลังพิจารณาอยู่ ก็ให้เลื่อนตำแหน่งพิจารณาไปพิจารณาช่างที่หาไปทางซ้ายหรือทางขวา ซึ่งมีระยะห่างจากตำแหน่งปัจจุบันเท่ากับค่าที่เก็บในอาเรย์สำรวจ


 

 

รับจำนำรถยนต์ รับจำนำรถจอด

เป็นต่อ ขั้นเทพ เป็นข่าว ซีรีส์ คณะนิเทศศาสตร์ ซิทคอม ยีนเด่น (ละครโทรทัศน์) เฮง เฮง เฮง เป็นต่อ นักเขียนบท เจ้าชายฌัก รัชทายาทแห่งโมนาโก กาญจน์เกล้า ด้วยเศียรเกล้า วอลเลย์บอลชายทีมชาติไทย ปิยะรัฐ ตุ้นทัพไทย อรรถพร ธีมากร ไมเคิล คลาร์ก ดันแคน เจ้าพงศ์แก้ว ณ ลำพูน ระบบทศนิยมดิวอี้ ตึกนิวยอร์กเวิลด์ เทพมารสะท้านภพ ไทเก็ก หมัดทะลุฟ้า สุภาพบุรุษตระกูลหยาง ตำนานเดชนางพญางูขาว เจิ้ง เจียอิ่ง อู๋ จัวซี กู่ เทียนเล่อ มังกรคู่สู้สิบทิศ แม่พระปฏิสนธินิรมล เจมส์ ฟิกก์ ธัญยกันต์ ธนกิตติ์ธนานนท์ โกะโร อินะงะกิ ฉัตรชัย ดุริยประณีต ธงไชย แมคอินไตย์ คิม เบซิงเงอร์ จิม มอร์ริสัน เดวิด คาร์ราดีน บ๊อบ อารัม สมเด็จพระราชินีนาถคริสตินาแห่งสวีเดน พรรคประชาชนบรูไน แอมโบรสแห่งมิลาน รังสี ทัศนพยัคฆ์ คิเคโร เจ้าหญิงคาทารีนา-อะมาเลีย เจ้าหญิงแห่งออเรนจ์ บุษกร ตันติภนา จอห์น เทอร์รี เฟอร์นันโด วาร์กัส ช่วง มูลพินิจ พิศมัย วิไลศักดิ์ พระมเหสีจองซอง การโจมตีท่าเรือเพิร์ล กองทัพเรือจักรวรรดิญี่ปุ่น Grammy Awards Allmusic ซิงเกิล นักธุรกิจ แร็ปเปอร์ เลสลี นีลเซน มะสึโอะ บะโช นันทนัช โล่ห์สุวรรณ ผู้รักษาประตู สจวร์ต เทย์เลอร์ แดเนียล เฮนนีย์ แอนนา นิโคล สมิธ หลวงพ่อเกษม เขมโก ลี กวน ยู คริส โจนนาว ซิลเวอร์แชร์ เค.แมกซ์ ซินบี แตวุง เค-วัน นักมวยไทย อักษรฮันกุล นักบุญเดนิส ออสการ์ ชินด์เลอร์ เช เกบารา สมเด็จพระสันตะปาปาปิอุสที่ 12 สมเด็จพระเจ้าอเล็กซานเดอร์ที่ 1 แห่งยูโกสลาเวีย หทัยภัทร สมรรถวิทยาเวช พชร ธรรมมล คนึงพิมพ์ พรมกร แบรนดอน เราธ์ แผ่นดินถล่ม สิ่งก่อสร้างที่สูงที่สุดในโลก อนุสาวรีย์วอชิงตัน อำเภอเมืองสุพรรณบุรี ปริ๊นซ์ ออฟ เทนนิส แม่พระแห่งลูกประคำ เลย์ เซบัสเตียน โกอาเตส ตะวัน จารุจินดา แอรอน แอชมอร์ ชอว์น แอชมอร์ ชิลเบร์ตู ซิลวา ภาคภูมิ แจ้งโพธิ์นาค ซามี ฮูเปีย โทนี แบรกซ์ตัน ไซมอน โคเวลล์ วลาดิมีร์ ปูติน พระเจ้าเฟรเดอริกที่ 1 แห่งเดนมาร์ก อาคารรัฐสภาไทย สาธารณรัฐอินโดนีเซีย

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
จำนำรถราชบุรี รถยนต์ เงินด่วน รับจำนำรถยนต์ จำนำรถยนต์ จำนำรถ 23406