[সঙ্গীত বাজাচ্ছি] ZAMYLA Chan: আপনি প্রতাপ প্রথম জিনিস খুঁজে বিষয়ে নোটিশ যে ইতিমধ্যে আমরা কোড আমাদের জন্য লিখিত আছে. এই ডিস্ট্রিবিউশন কোড বলা হয়. তাই আমরা শুধু আমাদের নিজের লেখা করছি না আর স্ক্র্যাচ থেকে কোড. বরং, আমরা voids পূরণ করছি কিছু পূর্বে উপস্থিত কোডের. find.c প্রোগ্রাম সংখ্যার জন্য অনুরোধ জানানো হবে খড়ের গাদা ভরাট, অনুসন্ধান ব্যবহারকারীর জমা সুই জন্য খড়ের গাদা, এবং এটি সাজানোর আহ্বান এবং দ্বারা এই আছে অনুসন্ধান, ফাংশন নির্ধারণ helpers.c মধ্যে. সুতরাং find.c ইতিমধ্যে করা হবে না. আপনার কাজ সাহায্যকারী লিখতে হয়. সুতরাং আমরা কি করছেন? আমরা দুটি ফাংশন রূপায়ণকারী করছি. সত্য ফেরৎ যা অনুসন্ধান, যদি একটি মান ফিরে, খড়ের গাদা পাওয়া যায় মিথ্যা মূল্য যদি না খড়ের গাদা মধ্যে. এবং তারপর আমরা সাজানোর বাস্তবায়ন করছি যা মান বলা অ্যারে অসুস্থ. তাই এর সন্ধান মোকাবেলা যাক. অনুসন্ধান বর্তমানে একটি হিসাবে প্রয়োগ করা হয় রৈখিক অনুসন্ধান, কিন্তু আপনি অনেক কিছু করতে পারি যে বেশী ভালো. লিনিয়ার সার্চ হে প্রয়োগ করা হয় এন সময়, যা বেশ ধীর. যদিও, এটা অনুসন্ধান করতে পারেন এটি দেওয়া কোনো তালিকা. আপনার কাজ বাইনারি অনুসন্ধান বাস্তবায়ন হয়, লগ n সময় হে চালানো হয়েছে. যে বেশ দ্রুত. কিন্তু একটি কড়ার আছে. বাইনারি অনুসন্ধান শুধুমাত্র অনুসন্ধান করতে পারেন প্রাক সাজানো তালিকার মধ্যে. কেন হল? ওয়েল এর একটি উদাহরণ তাকান. মান একটি অ্যারের দেওয়া, খড়ের গাদা, আমরা খুঁজছেন করা চলুন একটি সুই জন্য. এবং এই উদাহরণে, পূর্ণসংখ্যা তিন. বাইনারি অনুসন্ধান কাজ করে যে ভাবে যে আমরা মাঝখানে মূল্য তুলনা অনেক ভালো সুই যাও অ্যারে, কিভাবে আমরা মাঝখানে একটি ফোনবুক খোলা সপ্তাহে শূন্য মধ্যে পাতা. তাই থেকে মধ্যম মূল্য তুলনা পরে সুই, আপনি হয় বাতিল পারেন বাম বা অ্যারের ডান অর্ধেক আপনার সীমার কষাকষি দ্বারা. এই ক্ষেত্রে, তিন, যেহেতু আমাদের সুই, কম 10, মধ্যম মানের, হয় ডান বাউন্ড হ্রাস করতে পারেন. কিন্তু আপনার কোট করতে চেষ্টা করুন যতটা সম্ভব টাইট. মধ্যম মান সুই নয়, তাহলে আপনি আপনি করতে হবে না জানি আপনার অনুসন্ধানের মধ্যে এটি অন্তর্ভুক্ত. সুতরাং আপনি ডান আবদ্ধ করছেন আঁট পারেন শুধু একটি অতি ক্ষুদ্র অংশ আরো অনুসন্ধান কোট, এবং তাই এবং তাই ঘোষণা না হওয়া পর্যন্ত আপনি আপনার সুই খুঁজে. তাই কি pseudocode কেমন হয়েছে? আমরা এখনও মাধ্যমে খোঁজ করছি ভাল সময় তালিকা এবং এখনও করার উপাদান আছে অল্পক্ষণের, আমরা তালিকা মাঝখানে গ্রহণ এবং যে মাঝখানে মূল্য তুলনা আমাদের সুই. তারা সমান হন, তাহলে যে আমরা করেছি মানে সুই পাওয়া গেছে এবং আমরা করতে পারেন সত্য ফিরে. অন্যথা, সুই কম হলে মধ্যম মান, তাহলে যে আমরা মানে ডান অর্ধেক বাতিল, এবং শুধু পারেন অ্যারে বামদিকে অনুসন্ধান. অন্যথা, আমরা অনুসন্ধান করব অ্যারের ডান দিকে. এবং শেষে, যদি আপনি কোনো না থাকে আরো অনুসন্ধান বাম উপাদান কিন্তু আপনি এর পরে, এখনো আপনার সুই পাওয়া যায় না মিথ্যা ফিরে কারণ সুই স্পষ্টভাবে খড়ের গাদা হয় না. এই pseudocode সম্পর্কে এখন একটি ঝরঝরে জিনিস বাইনারি অনুসন্ধান মধ্যে এটি হতে পারে একটি পুনরাবৃত্ত হয় হিসেবে ব্যাখ্যা বা recursive বাস্তবায়ন. আপনি বলা হলে সুতরাং recursive হবে সার্চ মধ্যে অনুসন্ধান ফাংশন অ্যারের হয় অর্ধেক উপর কাজ. আমরা একটু পরে মধ্যে recursion আবরণ করব অবশ্যই, কিন্তু এটি একটি যে জানেন বিকল্প আপনি চেষ্টা করতে চান না. এখন আসুন সাজানোর তাকান. সাজান একটি অ্যারে এবং পূর্ণসংখ্যা লাগে অ্যারের আকার যা এন,. এখন বিভিন্ন বিভিন্ন ধরনের আছে প্রকারের, এবং আপনি কিছু তাকান পারেন গণদেবতা এবং ব্যাখ্যার জন্য হাফপ্যান্ট. বিনিময়ে টাইপ আমাদের সাজানোর ফাংশন অকার্যকর হয়. সুতরাং যে আমরা চলুন না যে মানে সাজানোর থেকে কোনো অ্যারে ফিরে যাও. আমরা আসলে খুব পরিবর্তন চলুন আমাদের মধ্যে প্রেরণ করা হত যে অ্যারে. অ্যারে কারণ এবং যে সম্ভব আমরা এখন সি রেফারেন্স দ্বারা করব পাশ পরে এই বিষয়ে আরও দেখতে, কিন্তু পাশ করার মধ্যে অপরিহার্য পার্থক্য একটি পূর্ণসংখ্যা এবং পাশ করার মত কিছু একটি অ্যারের মধ্যে, যে যখন আপনি একটি পূর্ণসংখ্যা মধ্যে পাস, সি ঠিক যাচ্ছে যে পূর্ণসংখ্যা একটি কপি করতে এবং পাস ফাংশন এটি. মূল চলক পরিবর্তন করা হবে না ফাংশন সমাপ্ত হয় একবার. একটি অ্যারের সাথে, অন্য দিকে, এটা একটি কপি করা যাচ্ছে, এবং আপনি পাবেন না আসলে সম্পাদনা করা খুব অ্যারের নিজেই. তাই কেমন এক প্রকার নির্বাচন সাজানোর. নির্বাচন সাজানোর থেকে শুরু করে কাজ করে আপনি পুনরুক্তি তারপর শুরু, এবং উপর এবং ক্ষুদ্রতম উপাদান খুঁজে. এবং তারপর আপনি অদলবদল যে ক্ষুদ্রতম প্রথম এক সঙ্গে উপাদান. এবং তারপর আপনি দ্বিতীয় উপাদান সরাতে পরের ক্ষুদ্রতম খুঁজে তারপর উপাদান, এবং অদলবদল যে সঙ্গে অ্যারের মধ্যে দ্বিতীয় উপাদান কারণ প্রথম উপাদান ইতিমধ্যেই সাজানো হয়. এবং তারপর, তাই আপনি প্রতি জন্য অবিরত ক্ষুদ্রতম চিহ্নিত উপাদান মূল্য এবং এটি সোয়াপিং. আমি 0, খুব প্রথম উপাদান সমান জন্য এন বিয়োগ 1 জন্য, আপনার তুলনা চলুন প্রতি পরবর্তী এর পর মান এবং খুঁজে সর্বনিম্ন মূল্যের সূচী. আপনি সর্বনিম্ন মূল্য সূচক খুঁজতে হলে আপনি অ্যারের যে মান অদলবদল করতে পারেন সর্বনিম্ন এবং অ্যারের আই সাজানোর আরেক ধরনের যে আপনি যা করতে পারেন বাস্তবায়ন বুদ্বুদ সাজান. তালিকা ধরে সুতরাং বুদ্বুদ সাজানোর iterates সন্নিহিত উপাদান এবং তুলনা উপাদান সোয়াপিং যে ভুল যাতে হয়. এবং এই ভাবে, বৃহত্তম উপাদান বুদ্বুদ শেষ হবে. আর তালিকার একবার কোন সাজানো হয় উপাদান আনা হয়েছে. তাই ঐ ধরণের দুটি উদাহরণ আপনার জন্য বাস্তবায়ন করতে পারে আলগোরিদিম খুঁজে প্রোগ্রাম. আপনি সাজানোর শেষ, এবং আপনি করেছি একবার অনুসন্ধান সম্পন্ন, আপনি সমাপ্ত করছি. আমার নাম Zamyla, এবং এই CS50. [সঙ্গীত বাজাচ্ছি]