2-Ámeliyat jumısı. Sızıqlı hám Binar izlew
for i := 0; i < len(a); i++ { if
Download 64 Kb.
|
Ámeliyat jumısı 36723
for i := 0; i < len(a); i++ {
if a[i] == condidate { return i } } return -1 } Kórip turǵanımızday, funksiyamız 2 parametr qabıllaydı, birinshisi massivtiń ózi, ekinshisi biz izlep atırǵan element. Eger onı taba almasaq, "-1" mánisti qaytaramız. Endi bunnan optimal bolǵan usıl - binar(ekilik) izlewdi kóreyik. Bul usılda da funksiyaǵa 2 parametr, birinshisi massiv ózi keyin bolsa biz izlep atırǵan elementti parametr sıpatında beriladi. Izlew bolsa tómendegishe: Aldın biz massiv bası hám aqırın ózimiz ushın ózgeriwshilerde belgilep alamız, meniń kodımda bul left hám right ózgeriwshileri: left := 0 right := len(a) keyninen tómendegi shárt orınlanǵan jaǵdayında
tómendegi izbe-iz ámellerdi ámelge asıramız: left hám right index leri orayındaǵı elementti tabamız (left + right) / 2 tabılǵan elementimiz biz izlep atırgan elementke teń bolsa, onda mid elementti juwap sıpatında qaytaramız eger a[mid] elementimiz biz izlep atırǵan elementten kishi bolsa biz left = mid dep belgileymiz hám sonda a[mid:right] bóleginde izlew dawam etedi. eger a[mid] elementimiz biz izlep atırǵan elementten úlken bolsa demek right = mid dep belgileymiz sonda izlew a[left:mid] bóleginde izlew dawam etedi. Usı túrde izlew left < right shárt orınlanǵanınsha dawam etedi, eger bul proseste biz izlegen element tabılmasa onda -1 juwap qaytarıladı, tómende programma kodı keltirilgen: func binarySearch(a []int, condidate int) int { left := 0 right := len(a) for left < right { mid := (left + right) / 2 Download 64 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling