KomputerProgramming

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, naon titik dina pangajaran topik. Ku kituna, hayu urang boga hiji Asép Sunandar Sunarya ku dimensi sahenteuna 100000000 elemen nu kudu manggihan sababaraha. Tangtu, masalah ieu bisa gampang direngsekeun ku pilarian linier basajan, nu urang ngagunakeun siklus bakal ngabandingkeun unsur diperlukeun ku sakabeh jalma anu di Asép Sunandar Sunarya dina. masalahna nyaeta yén palaksanaan gagasan ieu bakal butuh teuing waktos. Dina program Pascal basajan kana sababaraha perlakuan, jeung tilu garis tina téks utama, anjeun moal aya bewara eta, tapi lamun urang datang ka hiji leuwih atawa kurang badag proyék kalawan angka nu gede ngarupakeun dahan jeung fungsionalitas alus, program bakal siap jadi sarat pikeun panjang teuing. Utamana lamun komputer nyaéta pagelaran lemah. Ku alatan éta, aya hiji pilarian binér nu ngurangan waktu pilarian sahenteuna dua kali.

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 ngamimitian

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

Kusabab 12 nyaeta gede ti 10, urang Piceun 7. tetep ngan 10, 12 jeung 18.

Di dieu, unsur tengah geus 12, nya éta angka nu diperlukeun. Tugas ieu réngsé - jumlahna 12 kapanggih.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 su.atomiyme.com. Theme powered by WordPress.