আমি সম্প্রতি কিছু কোড লিখেছি যা আমি খুব অদক্ষ মনে করেছিলাম, তবে যেহেতু এটিতে কয়েকটি কয়েকটি মান অন্তর্ভুক্ত ছিল তাই আমি এটি গ্রহণ করেছি। তবে, আমি এখনও নিম্নলিখিতগুলির জন্য আরও ভাল অ্যালগরিদমে আগ্রহী:
- এক্স অবজেক্টের একটি তালিকা, তাদের প্রত্যেককে একটি "ওজন" বরাদ্দ করা হয়েছে
- ওজন যোগ করুন
- যোগফল থেকে 0 পর্যন্ত একটি এলোমেলো সংখ্যা তৈরি করুন
- বস্তুগুলির মাধ্যমে আইট্রেট করুন, যোগফলটি অ-ধনাত্মক না হওয়া পর্যন্ত তাদের ওজনের যোগফল থেকে বিয়োগ করুন
- তালিকা থেকে অবজেক্টটি সরান, এবং তারপরে এটিকে নতুন তালিকার শেষে যুক্ত করুন
আইটেম 2,4, এবং 5 সমস্ত n
সময় নেয় এবং তাই এটি একটি O(n^2)
অ্যালগরিদম।
এই উন্নতি করা যায়?
ওজনযুক্ত পরিবর্তনের উদাহরণ হিসাবে, কোনও উপাদানটির উচ্চতর ওজন নিয়ে সামনের দিকে থাকার আরও বেশি সম্ভাবনা থাকে।
উদাহরণ (আমি এটিকে বাস্তব করতে এলোমেলো সংখ্যা তৈরি করব):
6,5,4,3,2,1 ওজন সহ 6 টি অবজেক্ট; যোগফল 21
আমি 19 বাছাই করেছি: 19-6-5-4-3-2 = -1
এভাবে 2 প্রথম অবস্থানে যায়, ওজন এখন 6,5,4,3,1; যোগফল 19
আমি 16 বাছাই করেছি: 16-6-5-4-3 = -2
এইভাবে 3 দ্বিতীয় অবস্থানে যায়, ওজন এখন 6,5,4,1; যোগফল 16
আমি 3 বাছাই করেছি: 3-6 = -3
সুতরাং 6 তৃতীয় অবস্থানে চলে যায়, ওজন এখন 5,4,1; যোগফল 10
আমি 8 বাছাই করেছি: 8-5-4 = -1
এইভাবে 4 চতুর্থ অবস্থানে যায়, ওজন এখন 5,1; যোগফল 6
আমি 5 বাছাই করেছি: 5-5=0
এইভাবে 5 পঞ্চম অবস্থানে যায়, ওজন এখন 1 হয়; যোগফল 1
আমি 1 বাছাই করেছি: 1-1=0
এভাবে 1 শেষ পজিশনে চলে যায়, আমার আর ওজন নেই, শেষ করছি