ಕಂಪ್ಯೂಟರ್ಪ್ರೋಗ್ರಾಮಿಂಗ್

ಬೈನರಿ ಹುಡುಕಾಟ - ಸುಲಭವಾದ ರೀತಿಯಲ್ಲಿ ಒಂದು ಶ್ರೇಣಿಯಲ್ಲಿನ ಒಂದು ಅಂಶ ಹುಡುಕಲು

ಯಾವಾಗಲೂ, ಪ್ರೋಗ್ರಾಮರ್ಗಳು, ಸಹ ಆರಂಭಿಕರಿಗಾಗಿ, ವಾಸ್ತವವಾಗಿ ಒಂದು ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ ಹುಡುಕಲು ಯಾವ ಸಂಖ್ಯೆಗಳ ಸೆಟ್, ಎಂದು ಎದುರಿಸಿದರು. ಈ ಸಂಗ್ರಹ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಮತ್ತು ಇದು ಐಟಂಗಳನ್ನು ಹುಡುಕಲು, ಅಲ್ಲಿ ರೀತಿಯಲ್ಲಿ ಅಸಂಖ್ಯಾತ ಇವೆ. ಆದರೆ ಅವುಗಳಲ್ಲಿ ಅತ್ಯಂತ ಸರಳ ಬಲಭಾಗದಲ್ಲಿ ಒಂದು ಬೈನರಿ ಸರ್ಚ್ ಪರಿಗಣಿಸಬಹುದು. ಏನಿದು ವಿಧಾನವಾಗಿದೆ? ಮತ್ತು ಹೇಗೆ ಬೈನರಿ ಸರ್ಚ್ ಕಾರ್ಯಗತಗೊಳಿಸಲು? ಪ್ಯಾಸ್ಕಲ್ ಇಂತಹ ಒಂದು ಪ್ರೊಗ್ರಾಮ್ ಸಂಸ್ಥೆಗೆ ಸುಲಭವಾದ ಪರಿಸರ, ಆದ್ದರಿಂದ ನಾವು ಅಧ್ಯಯನ ಇದನ್ನು ಬಳಸುತ್ತೇವೆ.

ಮೊದಲ, ವಿಶ್ಲೇಷಿಸಲು, ಏನು ಈ ವಿಧಾನದ ಅನುಕೂಲಕರವಾಗಿವೆ, ಅದು ಅರ್ಥವಾಗುವಂತಹ ಆಗಿದೆ, ವಿಷಯ ಅಧ್ಯಯನದಲ್ಲಿ ಪಾಯಿಂಟ್ ಏನು. ಆದ್ದರಿಂದ, ಕೆಲವು ಕಂಡುಹಿಡಿಯಬೇಕು ಇದರಲ್ಲಿ ಕನಿಷ್ಠ 100000000 ಅಂಶಗಳು, ಒಂದು ಅಳತೆಯು ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಹೊಂದಿವೆ ಅವಕಾಶ. ಸಹಜವಾಗಿ, ಈ ಸಮಸ್ಯೆಯನ್ನು ಸುಲಭವಾಗಿ ನಾವು ಸೈಕಲ್ ಬಳಸಿ ಇದರಲ್ಲಿ ಶ್ರೇಣಿಯಲ್ಲಿನ ಎಲ್ಲಾ ಆ ಅಗತ್ಯವಿರುವ ಅಂಶ ಹೋಲಿಕೆ ಕಾಣಿಸುತ್ತದೆ ಒಂದು ಸರಳ ರೇಖೀಯ ಹುಡುಕಾಟ, ಮೂಲಕ ಪರಿಹರಿಸಬಹುದು. ಸಮಸ್ಯೆಯನ್ನು ಈ ಕಲ್ಪನೆಯನ್ನು ಅನುಷ್ಠಾನಕ್ಕೆ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಎಂಬುದು. ಅನೇಕ ಚಿಕಿತ್ಸೆಗಳು, ಮತ್ತು ಮುಖ್ಯ ಪಠ್ಯದ ಮೂರು ಸಾಲಾಗಿ ಸರಳ ಪ್ಯಾಸ್ಕಲ್ ಕಾರ್ಯಕ್ರಮದಲ್ಲಿ, ನೀವು ಗಮನಿಸುವುದಿಲ್ಲ, ಆದರೆ ನಾವು ಶಾಖೆಗಳನ್ನು ಮತ್ತು ಉತ್ತಮ ಕಾರ್ಯನಿರ್ವಹಿಸಿ ಒಂದು ದೊಡ್ಡ ಸಂಖ್ಯೆಯ ಹೆಚ್ಚು ಕಡಿಮೆ ಬೃಹತ್ ಯೋಜನೆಗಳಿಗೆ ಬರುವಾಗ, ಪ್ರೋಗ್ರಾಂ ಬಹಳ ಫಾರ್ ಲೋಡ್ ಸಿದ್ಧವಾಗಲಿದೆ. ವಿಶೇಷವಾಗಿ ಕಂಪ್ಯೂಟರ್ ದುರ್ಬಲ ಪ್ರದರ್ಶನ ವೇಳೆ. ಆದ್ದರಿಂದ, ಕನಿಷ್ಠ ಎರಡು ಬಾರಿ ಹುಡುಕಾಟ ಸಮಯ ಕಡಿಮೆಗೊಳಿಸುತ್ತದೆ ಒಂದು ಬೈನರಿ ಸರ್ಚ್, ಇಲ್ಲ.

ಆದ್ದರಿಂದ, ಈ ವಿಧಾನದ ಕೆಲಸ ತತ್ವ ಏನು? ತಕ್ಷಣ ಬೈನರಿ ಸರ್ಚ್ ಕೆಲಸ, ಯಾವುದೇ ಶ್ರೇಣಿಯಲ್ಲಿನ ಅಲ್ಲ ಆದರೆ ಸಂಖ್ಯೆಗಳ ವಿಂಗಡಿಸಲಾದ ಸೆಟ್ನಲ್ಲಿ ಹೇಳುತ್ತಾರೆ. ರಚನೆಯ ಪ್ರತಿ ಹೆಜ್ಜೆ ಮಧ್ಯಮ ಅಂಶ (ಅಂಶ ಸಂಖ್ಯೆ ಅರ್ಥ). ಬೇಕಾದಲ್ಲಿ ಸಂಖ್ಯೆಯ ಹೆಚ್ಚಾಗಿದೆ ಸರಾಸರಿ, ನಂತರ ಎಡಕ್ಕೆ ನಿಗದಿಪಡಿಸಲಾಗಿದೆ ಎಲ್ಲಾ, ಸರಾಸರಿ ಸೆಲ್ ಕಡಿಮೆಯಾಗಿದ್ದರೆ, ವಿಕ್ಷಿಪ್ತಗೊಳಿಸಬಹುದು ಮತ್ತು ನೋಡಲು ಅಲ್ಲ. ವ್ಯತಿರಿಕ್ತವಾಗಿ, ಸರಾಸರಿ ಪ್ರಮಾಣಕ್ಕಿಂತ ಕಡಿಮೆ ವೇಳೆ - ಬಲ ಆ ಗೀತೆಗಳ ಪೈಕಿ, ನೀವು ಹುಡುಕಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಂತರ ಮೊದಲ ಅಂಶ ಇಡೀ ರಚನೆಯ ಮಧ್ಯಮ ಅಂಶ, ಮತ್ತು ಕೊನೆಯ ಮತ್ತು ಕೊನೆಯ ಉಯಿಲು ಎಂದು ಅಲ್ಲಿ ಹೊಸ ಹುಡುಕಾಟ ಪ್ರದೇಶ, ಆಯ್ಕೆ. ಹೊಸ ಕ್ಷೇತ್ರದಲ್ಲಿ ಸರಾಸರಿ ಎಲ್ಲಾ ವಿಭಾಗದಲ್ಲಿ, ಎಂದು, (ಕೊನೆಯ ಅಂಶ + ಇಡೀ ರಚನೆಯ ಮಧ್ಯಮ ಅಂಶ) / 2 ¼ ಭಾಗವು ಇರುತ್ತದೆ. ಮತ್ತೆ, ಅದೇ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಡೆಸಲಾಗುತ್ತದೆ - ಅರೇ ಸರಾಸರಿ ನೊಂದಿಗೆ ಹೋಲಿಕೆಯ. ವೇಳೆ ಉದ್ದೇಶಿತ ಮೌಲ್ಯವನ್ನು ಸರಾಸರಿಗಿಂತ ಕಡಿಮೆ ಇದ್ದರೆ, ನಾವು ಬಲಭಾಗದ ತಿರಸ್ಕರಿಸಲು, ಮತ್ತು ಈಗ ಈ ಮಧ್ಯಮ ಅಂಶ ಬಯಸಿದ ಎಂದು ರವರೆಗೆ, ಮುಂದಿನ ಮಾಡಲು.

ಸಹಜವಾಗಿ, ಇದು ಬೈನರಿ ಸರ್ಚ್ ಬರೆಯಲು ಹೇಗೆ ಉದಾಹರಣೆಯಾಗಿದೆ ನೋಡಲು ಉತ್ತಮ. ಪ್ಯಾಸ್ಕಲ್ ಇಲ್ಲಿ ಯಾರಿಗೂ ಸರಿಹೊಂದುವಂತೆ ಮಾಡುತ್ತದೆ - ಆವೃತ್ತಿಯು ಪ್ರಮುಖ ಅಲ್ಲ. ಅವರ ಸರಳ ಪ್ರೋಗ್ರಾಂ ಬರೆಯೋಣ.

ಇದು "massiv" ಅಡಿಯಲ್ಲಿ 1 ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಗಂ ಮಾಡುವುದು, ಹುಡುಕಾಟ ಕೆಳ ಗಡಿ ಸೂಚಿಸುವ ಒಂದು ವೇರಿಯಬಲ್, "niz" ಎಂಬ ಮಿತಿಯಿದೆ, "verh", ಸರಾಸರಿ ಹುಡುಕಾಟ ಪದವನ್ನು ಎಂಬ - "sredn"; ಮತ್ತು ಅಗತ್ಯ ಸಂಖ್ಯೆ - "isk".

ಆದ್ದರಿಂದ, ನಾವು ಮೊದಲ ಶ್ರೇಣಿಯ ಹುಡುಕಾಟ ಮೇಲಿನ ಮತ್ತು ಕೆಳಗಿನ ಮಿತಿಯನ್ನು ನಿಯೋಜಿಸಲು:

niz: = 1;
verh: = ಗಂ +1;

ನಂತರ ಸೈಕಲ್ ಸಂಘಟಿಸಲು ವರೆಗೆ "ಕೆಳಗೆ ಮೇಲಿನ ಮಿತಿಯನ್ನು ಕಡಿಮೆ":

niz ಆರಂಭಿಸಲು

ಪ್ರತಿ ಹಂತದಲ್ಲೂ, ನಾವು ವಿಭಾಗದಲ್ಲಿ 2 ವಿಭಾಗಿಸಿದ್ದಾರೆ

sredn: = (niz + verh) DIV 2; {ಉಳಿದ ವಿಭಜಿಸಲು ಏಕೆಂದರೆ ಕಾರ್ಯ DIV ಬಳಸಿ}

ಪರಿಶೀಲನೆಯ ಪ್ರತಿ ಬಾರಿ. ಸಾಧಾರಣ ಬೇಕೆಂದಲ್ಲಿ ಐಟಂ ಅನ್ನು ಈಗಾಗಲೇ ಕಂಡು ಸಾಧಿಸಿರುವುದರಿಂದ, ಅಡ್ಡಿಪಡಿಸಲು ಸೈಕಲ್:

ವೇಳೆ sredn = isk ನಂತರ ಮುರಿಯಲು;

ಬಯಸಿದ ಹೆಚ್ಚು ರಚನೆಯ ಮಧ್ಯಮ ಅಂಶ ವೇಳೆ, ಎಡಭಾಗದಲ್ಲಿ ತಿರಸ್ಕರಿಸಲು, ಅಂದರೆ, ಸರಾಸರಿ ಮೇಲಿನ ಗಡಿ ನೇಮಕ ಅಂಶ:

ವೇಳೆ massiv [sredn]> isk ನಂತರ verh: = sredn;

ಮತ್ತು ಬದಲಾಗಿ ಅದನ್ನು ಕಡಿಮೆ ಗಡಿ ಮಾಡುತ್ತದೆ:

ಬೇರೆ niz: = sredn;
ಕೊನೆಗೊಳಿಸುವುದು;

ಆ ಕಾರ್ಯಕ್ರಮವು ಇರುತ್ತದೆ ಅಷ್ಟೆ.

ನಮಗೆ ಇದು ಆಚರಣೆಯಲ್ಲಿ ಬೈನರಿ ವಿಧಾನವನ್ನು ಕಾಣಿಸುವುದು ಪರಿಗಣಿಸೋಣ. ಈ ರಚನೆಯ ಪರಿಗಣಿಸಿ: 1, 3, 5, 7, 10, 12, 18 ಮತ್ತು 12 ಅರಸುತ್ತವೆ.

ಒಟ್ಟು ನಾವು 7 ಅಂಶಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಆದ್ದರಿಂದ ನಾಲ್ಕನೇ ಮಧ್ಯಮ, ಮೌಲ್ಯ 7 ತಿನ್ನುವೆ.

1 3 5 7 10 12 18

ಹೆಚ್ಚು 12, 7, 1.3 ಮತ್ತು 5 ಅಂಶಗಳನ್ನು, ನಾವು ತಿರಸ್ಕರಿಸಬಹುದು. ನಂತರ ನಾವು ಸಂಖ್ಯೆ 4 ಪಡೆದಿರುವಿರಿ, 4/2 ಯಾವುದೇ ಶೇಷ 2. ಆದ್ದರಿಂದ, ಹೊಸ ಅಂಶ ಸರಾಸರಿ 10 ಇರುತ್ತದೆ.

7 10 12 18

ರಿಂದ 12 10 ಹೆಚ್ಚಾಗಿದೆ, ನಾವು 7. ಉಳಿದಿದೆ ಕೇವಲ 10, 12 ಮತ್ತು 18 ತಿರಸ್ಕರಿಸಲು.

ಇಲ್ಲಿ, ಮಧ್ಯಮ ಅಂಶ ಈಗಾಗಲೇ 12, ಇದು ಅಗತ್ಯವಿದೆ ಸಂಖ್ಯೆ. ಈ ಕಾರ್ಯ ಮುಗಿದ - 12 ಕಂಡುಬಂದಿಲ್ಲ.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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