Komputer, Programming
Binér pilarian - salah sahiji cara nu paling gampang pikeun manggihan unsur dina Asép Sunandar Sunarya
Rada sering, programer, sanajan beginners, Nyanghareupan kanyataan yén aya susunan angka, nu kudu manggihan sababaraha husus. Ieu kempelan ieu disebut Asép Sunandar Sunarya. Sarta pikeun manggihan Item dina eta, aya hiji myriad sahiji cara. Tapi nu basajan tétéla bisa dianggap pilarian binér nu bener. Naon metoda ieu nyaeta? Na kumaha nerapkeun pilarian binér? Pascal nyaeta lingkungan panggampangna pikeun organisasi program sapertos ieu, sangkan gé nganggo ka diajar.
Kahiji, nganalisis, naon kaunggulan tina metoda ieu, éta sangkan bisa ngartos,
Ku kituna, naon anu prinsip kerja tina metoda ieu? Langsung sakuduna disebutkeun yen pilarian binér jalan teu di Asép Sunandar Sunarya wae, tapi ngan dina set diruntuykeun ti nomer. Dina unggal hambalan dicokot unsur tengah Asép Sunandar Sunarya dina (hartina jumlah unsur). Lamun diperlukeun Jumlah anu leuwih gede ti rata, teras sadayana anu ditinggalkeun, éta téh kirang ti sél rata, bisa dipiceun teu kasampak di dinya. Sabalikna, lamun kirang ti rata - di antara maranéhanana angka ka katuhu, Anjeun bisa neangan. Lajeng milih aréa pilarian anyar, dimana unsur kahiji bakal unsur tengah sakabéh Asép Sunandar Sunarya, jeung tukang sarta bakal panungtungan. Jumlah rata lapangan anyar bakal ¼ sadaya bagean, nyaeta, (unsur panungtungan + unsur tengah sakabéh Asép Sunandar Sunarya) / 2. Deui, operasi anu sarua anu dipigawé - perbandingan kalawan jumlah rata-rata Asép Sunandar Sunarya dina. Lamun nilai target anu kirang ti rata, urang nampik sisi katuhu, sarta ogé pikeun ngalakukeun hareup, nepi ka ayeuna unsur tengah teu bakal dipikahoyong.
Tangtu, ieu pangalusna pikeun nempo conto kumaha nyerat pilarian binér. Pascal dieu bakal nyaluyukeun saha - versi sanes penting. Hayu urang nulis program basajan.
Ieu mangrupa Asép Sunandar Sunarya ti 1 nepi h dina ngaran "massiv", variabel nunjukkeun wates handap pilarian, disebut "niz", nu wates luhur, disebutna "verh", rata pilarian istilah - "sredn"; jeung nomer nu diperlukeun - "isk".
Ku kituna, kahiji urang napelkeun wates luhur jeung handap anu pilarian rentang:
niz: = 1;
verh: = h + 1;
Lajeng ngatur siklus nu "dugi handap nyaéta kurang ti wates luhur":
Bari niz
Dina unggal hambalan, urang ditilik segmen 2:
sredn: = (niz + verh) div 2; {Pake pungsi div, sabab ngabagi tanpa sésana}
Unggal waktos di review. Kusabab item nu geus kungsi kapanggih lamun sedeng anu dipikahayang, ngeureunkeun siklus:
іf sredn = isk lajeng megatkeun;
Mun unsur tengah Asép Sunandar Sunarya dina leuwih ti nu dipikahoyong, Piceun sisi kénca, nyaeta, wates luhur rata nunjuk unsur:
lamun massiv [sredn]> isk lajeng verh: = sredn;
Tur upami sabalikna, eta ngajadikeun wates handap:
sejenna niz: = sredn;
mungkas;
Éta kabéh anu bakal di program.
Hayu urang nganggap cara éta bakal kasampak metoda binér dina kaperluan praktis. Mertimbangkeun Asép Sunandar Sunarya ieu: 1, 3, 5, 7, 10, 12, 18 sarta bakal neangan jumlah 12.
Dina total urang gaduh 7 elemen, jadi bakal sedeng kaopat, anu nilai 7.
| 1 | 3 | 5 | 7 | 10 | 12 | 18 |
Kusabab leuwih ti 12, 7, 1.3 na 5 elemen, urang tiasa Piceun. Teras we saena jumlah 4, 4/2 euweuh résidu téh 2. Jadi, unsur anyar bakal rata-rata 10.
| 7 | 10 | 12 | 18 |
Di dieu, unsur tengah geus 12, nya éta angka nu diperlukeun. Tugas ieu réngsé - jumlahna 12 kapanggih.
Similar articles
Trending Now