[সঙ্গীত বাজাচ্ছি] ডগ লয়েড: ঠিক আছে, তাই বাবল সাজান একটি অ্যালগরিদম হয় আপনি উপাদানের একটি সেট সাজাতে ব্যবহার করতে পারেন. এর কিভাবে এটি কাজ করে কটাক্ষপাত করা যাক. সুতরাং মৌলিক ধারণা পিছনে বাবল সাজান এই হল. আমরা সাধারণত উচ্চ স্থানান্তর করতে চান সাধারণত ডান মূল্যবান উপাদান, এবং সাধারণত মূল্যবান উপাদান কম বাম, আমরা আশা করতে পারি. আমরা কম কিছু হতে চাই শুরুতে, এবং উচ্চ জিনিষ শেষে হতে. আমরা এটা কিভাবে করব? ওয়েল pseudocode কোড, আমরা আসুন, বলতে পারে একটি নন-জিরো মান অদল-বদলের কাজটি কাউন্টার সেট. আমরা একটি দ্বিতীয় যে কেন আমরা দেখতে পাবেন. এবং তারপর আমরা নিম্নলিখিত পুনরাবৃত্তি অদল-বদল কাউন্টার 0 হয় না হওয়া পর্যন্ত প্রক্রিয়া, বা আমরা সব সময়ে কোন অদলবদল করা পর্যন্ত. করতে swap 'কাউন্টার রিসেট 0 এটি ইতিমধ্যেই 0 না হয় তাহলে. তারপর এ ভাষার চেহারা উপাদানের সন্নিহিত যুগল. ঐ দুটি উপাদানের হন না, যাতে তাদের অদলবদল, এবং swap 'পাল্টা 1 যোগ করুন. আপনি সম্পর্কে চিন্তা করছি এই কমান্ডের সাহায্যে আপনি তা ঠাহর আগে এই কম সরানো হবে যে লক্ষ্য বাঁদিকে মূল্যবান উপাদান এবং উচ্চ, ডান উপাদানের মূল্যবান কার্যকরভাবে আমরা কি করতে চান করছেন, যা ঐ গ্রুপ সরানো হয় যে ভাবে উপাদানের. এর কিভাবে এই ঠাহর করা যাক আমাদের অ্যারে ব্যবহার চেহারা হতে পারে আমরা পরীক্ষা করতে ব্যবহৃত যে এই আলগোরিদিম আউট. আমরা আবার এখানে একটি পাঁচমিশালী অ্যারে আছে উপাদানের সমস্ত দ্বারা নির্দেশিত লাল হচ্ছে. আর আমি আমার অদল-বদল কাউন্টার সেট একটি অশূন্য মান. আমি ইচ্ছামত বেছে নেওয়া হয়েছে নেতিবাচক 1 টি এটি 0 না. আমরা এই প্রক্রিয়া পুনরাবৃত্তি করতে চান অদল-বদল কাউন্টার পর্যন্ত 0 হয়. আমি আমার অদল-বদল সেট কেন হয় কিছু নন-জিরো মান পাল্টা, কারণ অন্যথায় অদল-বদল কাউন্টার 0 হবে. আমরা এমনকি শুরু না অ্যালগরিদম প্রক্রিয়া. তাই আবার, ধাপ are-- অদল-বদল কাউন্টার রিসেট 0 যাও, তারপর প্রতি সন্নিহিত তাকান জুড়ি, এবং তারা যাতে আউট হন, তাদের অদলবদল, এবং 1 যোগ অদল-বদল পাল্টা. তাই আসুন এই প্রক্রিয়া শুরু করা যাক. তাই আমরা কি প্রথম জিনিস আমরা 0 থেকে swap 'কাউন্টার সেট এবং তারপর আমরা খুঁজছি শুরু প্রতিটি সংলগ্ন জুড়ি. তাই আমরা প্রথম 5 এবং 2 এ খুঁজছেন শুরু. আমরা তারা বাইরে দেখতে অর্ডার এবং তাই আমরা তাদের অদলবদল. আর আমরা swap 'পাল্টা 1 যোগ করুন. তাই এখন আমাদের অদল-বদলের কাজটি কাউন্টার 1, এবং 2 এবং 5 জাগ্রত হয়েছে. এখন আমরা আবার প্রক্রিয়ার পুনরাবৃত্তি. আমরা পরের সন্নিহিত জুড়ি তাকান, 5 এবং তারা যাতে ফুরিয়েছে 1 টি, তাই আমরা তাদের অদলবদল এবং যোগ অদল-বদল কাউন্টার থেকে 1. তারপর আমরা 5 এবং 3 তাকান. তারা যাতে সীমার বাইরে, তাই আমরা অদলবদল তাদের এবং আমরা swap 'পাল্টা 1 যোগ করুন. তারপর আমরা 5 এবং 6 তাকান. তারা যাতে করছি, যাতে আমরা আসলে না কিছু এই সময় অদলবদল করতে হবে. তারপর আমরা 6 এবং 4 তাকান. তারা যাতে বাইরে এসেছি, তাই আমরা অদলবদল তাদের এবং আমরা swap 'পাল্টা 1 যোগ করুন. এখন ঘটেছে কি লক্ষ্য. আমরা শেষ পর্যন্ত 6 সব পথ ফেলে এসেছি. নির্বাচন সাজানোর মধ্যে সুতরাং, আপনি করেছি তাহলে যে ভিডিও দেখা, কি আমরা করেছিলাম আমরা চলন্ত শেষ পর্যন্ত দালান ক্ষুদ্রতম উপাদান থেকে মূলত সাজানো অ্যারের বৃহত্তম, ক্ষুদ্রতম ডানে বামে. বাবল সাজানোর ক্ষেত্রে আমরা হন তাহলে এই বিশেষ অ্যালগরিদম অনুসরণ, আমরা আসলে নির্মাণের হতে যাচ্ছেন ডান থেকে সাজানো অ্যারের ক্ষুদ্রতম থেকে বৃহত্তম বাম. আমরা কার্যকরভাবে 6, bubbled আছে বৃহত্তম মান, শেষ সব পথ. তাই আমরা এখন ঘোষণা করতে পারেন যে সাজানো হয় যে, এবং ভবিষ্যতে iterations-- অ্যারের মধ্যে দিয়ে যাচ্ছিলেন again-- আমরা আর 6 বিবেচনা করতে হবে না. আমরা শুধুমাত্র বিবেচনা আছে পাঁচমিশালী উপাদান যখন আমরা সংলগ্ন জোড়া এ খুঁজছেন. সুতরাং আমরা একটি সমাপ্ত হয়েছে বাবল সাজান মাধ্যমে পাস. তাই এখন আমরা প্রশ্ন ফিরে যান, অদল-বদল কাউন্টার 0 হয় না হওয়া পর্যন্ত পুনরাবৃত্তি. ওয়েল অদল-বদলের কাজটি কাউন্টার 4 হয়, তাই আমরা চলুন আবার এই প্রক্রিয়া পুনরায় রাখা. আমরা swap 'কাউন্টার রিসেট করতে যাচ্ছেন 0 যাও, এবং প্রতিটি সংলগ্ন জুড়ি তাকান. তাই আমরা তারা 1 টি 2 দিয়ে শুরু এবং যাতে বাইরে, তাই আমরা তাদের অদলবদল এবং আমরা swap 'পাল্টা 1 যোগ করুন. 2 এবং 3, তারা যাতে করছি. আমরা কিছু করতে হবে না. 3 ও 5 আদেশ হয়. আমরা সেখানে কিছু করতে হবে না. 5 এবং 4, তারা বাইরে আদেশের, এবং তাই আমরা তাদের অদলবদল এবং যুক্ত করতে হবে অদল-বদল কাউন্টার থেকে 1. আর এখন আমরা 5 সরিয়েছেন পরবর্তী বৃহত্তম উপাদান, পাঁচমিশালী অংশ শেষে. সুতরাং আমরা এখন যে কল করতে পারেন সাজানো অংশ অংশ. এখন আপনি এ খুঁজছেন পর্দা এবং সম্ভবত আপনি বলতে পারেন, আমি যা করতে পারেন অ্যারের যে এই মুহূর্তে সাজানো হয়. কিন্তু আমরা এখনও যে প্রমাণ করতে পারবে না. আমরা গ্যারান্টি আছে না যে এটা সাজানো. কিন্তু এই যেখানে অদলবদল হয় কাউন্টার করে আসা যাচ্ছে. সুতরাং আমরা একটি পাস সম্পন্ন করেছেন. অদল-বদল কাউন্টার 2 হয়. সুতরাং আমরা পুনরাবৃত্তি করতে যাচ্ছেন আবার এই প্রক্রিয়া, অদল-বদল কাউন্টার 0 হয় না হওয়া পর্যন্ত পুনরাবৃত্তি. 0 থেকে swap 'কাউন্টার রিসেট করুন. তাই আমরা এটি পুনরায় সেট করব. এখন প্রতিটি সংলগ্ন জুড়ি তাকান. যে, যাতে 1 এবং 2 এর. 2 এবং 3 আদেশ হয়. 3 ও 4, যাতে আছে. সুতরাং এই সময়ে, আমরা সম্পন্ন করেছি বিজ্ঞপ্তি প্রতি সন্নিহিত একজোড়া এ খুঁজছেন, কিন্তু অদল-বদলের কাজটি কাউন্টার এখনও 0 হয়. আমরা সুইচ না থাকে কোন উপাদান, তারপর তারা দ্বারা ক্রম হবে এই প্রক্রিয়ার পুণ্য. আর তাই প্রকারের একটি দক্ষতা, যে আমরা কম্পিউটার বিজ্ঞানীরা ভালবাসেন, আমরা এখন ঘোষণা করতে পারেন হয় সম্পূর্ণ অ্যারে অবশ্যই আমরা না, কারণ, সাজানো করা কোন উপাদান বিনিময় করা আছে. যে বেশ চমৎকার. তাই কি খারাপ কেস বাবল সাজান সঙ্গে পরিস্থিতি? এতকিছুর পরও যদি আপনি অ্যারে সম্পূর্ণ বিপরীত ক্রম, এবং তাই আমরা প্রতিটি বুদ্বুদ আছে বড় উপাদান সব অ্যারে জুড়ে উপায়. আর আমরা কার্যকরভাবে এছাড়াও আছে বাবল ছোট উপাদানের সব ফিরে খুব অ্যারে জুড়ে সব পথ. তাই এন উপাদানের প্রতিটি সরানো হয়েছে অন্যান্য n উপাদানের সমস্ত জুড়ে. সুতরাং যে লক দৃশ্যকল্প এর. ভাল যদি দৃশ্যকল্প যদিও, এই হল নির্বাচন সাজানোর থেকে কিছুটা ভিন্ন. অ্যারে ইতিমধ্যে আমরা যেতে যখন সাজানো. আমরা কোনো না করতে হবে না প্রথম পাস উপর অদলবদল. সুতরাং আমরা পর্যবেক্ষণ থাকতে পারে কম উপাদান এ, ডান? আমরা এই পুনরাবৃত্তি করতে হবে না ওভার বার নম্বর প্রক্রিয়া. সুতরাং যে কি মানে? তাই কি লক দৃশ্যকল্প এর বুদ্বুদ সাজানোর জন্য, এবং কি বুদ্বুদ সাজানোর জন্য সেরা ক্ষেত্রে দৃশ্যকল্প? আপনি এই অনুমান করেছেন? খারাপ যদি আপনি বারবার আছে সব n উপাদান এন বার জুড়ে. তাই সবচেয়ে খারাপ ক্ষেত্রে n ছক. অ্যারে পুরোপুরি হয় তাহলে সাজানো যদিও, আপনি শুধুমাত্র প্রতিটি তাকান আছে একবার উপাদানের. এবং swap 'কাউন্টার এখনও 0 হয়, আপনি এই অ্যারে সাজানো হয় বলতে পারেন. তাই সবচেয়ে ভালো ক্ষেত্রে, এই হল নির্বাচন বেশী আসলে ভালো sort-- এটি এন এর Omega. আমি ডগ লয়েড আছি. এটি CS50.