ಕಂಪ್ಯೂಟರ್, ಪ್ರೋಗ್ರಾಮಿಂಗ್
ಬೈನರಿ ಹುಡುಕಾಟ - ಸುಲಭವಾದ ರೀತಿಯಲ್ಲಿ ಒಂದು ಶ್ರೇಣಿಯಲ್ಲಿನ ಒಂದು ಅಂಶ ಹುಡುಕಲು
ಯಾವಾಗಲೂ, ಪ್ರೋಗ್ರಾಮರ್ಗಳು, ಸಹ ಆರಂಭಿಕರಿಗಾಗಿ, ವಾಸ್ತವವಾಗಿ ಒಂದು ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ ಹುಡುಕಲು ಯಾವ ಸಂಖ್ಯೆಗಳ ಸೆಟ್, ಎಂದು ಎದುರಿಸಿದರು. ಈ ಸಂಗ್ರಹ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಮತ್ತು ಇದು ಐಟಂಗಳನ್ನು ಹುಡುಕಲು, ಅಲ್ಲಿ ರೀತಿಯಲ್ಲಿ ಅಸಂಖ್ಯಾತ ಇವೆ. ಆದರೆ ಅವುಗಳಲ್ಲಿ ಅತ್ಯಂತ ಸರಳ ಬಲಭಾಗದಲ್ಲಿ ಒಂದು ಬೈನರಿ ಸರ್ಚ್ ಪರಿಗಣಿಸಬಹುದು. ಏನಿದು ವಿಧಾನವಾಗಿದೆ? ಮತ್ತು ಹೇಗೆ ಬೈನರಿ ಸರ್ಚ್ ಕಾರ್ಯಗತಗೊಳಿಸಲು? ಪ್ಯಾಸ್ಕಲ್ ಇಂತಹ ಒಂದು ಪ್ರೊಗ್ರಾಮ್ ಸಂಸ್ಥೆಗೆ ಸುಲಭವಾದ ಪರಿಸರ, ಆದ್ದರಿಂದ ನಾವು ಅಧ್ಯಯನ ಇದನ್ನು ಬಳಸುತ್ತೇವೆ.
ಮೊದಲ, ವಿಶ್ಲೇಷಿಸಲು, ಏನು ಈ ವಿಧಾನದ ಅನುಕೂಲಕರವಾಗಿವೆ, ಅದು ಅರ್ಥವಾಗುವಂತಹ ಆಗಿದೆ,
ಆದ್ದರಿಂದ, ಈ ವಿಧಾನದ ಕೆಲಸ ತತ್ವ ಏನು? ತಕ್ಷಣ ಬೈನರಿ ಸರ್ಚ್ ಕೆಲಸ, ಯಾವುದೇ ಶ್ರೇಣಿಯಲ್ಲಿನ ಅಲ್ಲ ಆದರೆ ಸಂಖ್ಯೆಗಳ ವಿಂಗಡಿಸಲಾದ ಸೆಟ್ನಲ್ಲಿ ಹೇಳುತ್ತಾರೆ. ರಚನೆಯ ಪ್ರತಿ ಹೆಜ್ಜೆ ಮಧ್ಯಮ ಅಂಶ (ಅಂಶ ಸಂಖ್ಯೆ ಅರ್ಥ). ಬೇಕಾದಲ್ಲಿ ಸಂಖ್ಯೆಯ ಹೆಚ್ಚಾಗಿದೆ ಸರಾಸರಿ, ನಂತರ ಎಡಕ್ಕೆ ನಿಗದಿಪಡಿಸಲಾಗಿದೆ ಎಲ್ಲಾ, ಸರಾಸರಿ ಸೆಲ್ ಕಡಿಮೆಯಾಗಿದ್ದರೆ, ವಿಕ್ಷಿಪ್ತಗೊಳಿಸಬಹುದು ಮತ್ತು ನೋಡಲು ಅಲ್ಲ. ವ್ಯತಿರಿಕ್ತವಾಗಿ, ಸರಾಸರಿ ಪ್ರಮಾಣಕ್ಕಿಂತ ಕಡಿಮೆ ವೇಳೆ - ಬಲ ಆ ಗೀತೆಗಳ ಪೈಕಿ, ನೀವು ಹುಡುಕಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಂತರ ಮೊದಲ ಅಂಶ ಇಡೀ ರಚನೆಯ ಮಧ್ಯಮ ಅಂಶ, ಮತ್ತು ಕೊನೆಯ ಮತ್ತು ಕೊನೆಯ ಉಯಿಲು ಎಂದು ಅಲ್ಲಿ ಹೊಸ ಹುಡುಕಾಟ ಪ್ರದೇಶ, ಆಯ್ಕೆ. ಹೊಸ ಕ್ಷೇತ್ರದಲ್ಲಿ ಸರಾಸರಿ ಎಲ್ಲಾ ವಿಭಾಗದಲ್ಲಿ, ಎಂದು, (ಕೊನೆಯ ಅಂಶ + ಇಡೀ ರಚನೆಯ ಮಧ್ಯಮ ಅಂಶ) / 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, ಇದು ಅಗತ್ಯವಿದೆ ಸಂಖ್ಯೆ. ಈ ಕಾರ್ಯ ಮುಗಿದ - 12 ಕಂಡುಬಂದಿಲ್ಲ.
Similar articles
Trending Now