কুইকোর্ট এবং বিরক্ত করবেন না?


9

বিশেষত 'স্ট্যান্ডার্ড' (নন-এইচপিসি) অ্যাপ্লিকেশনগুলি লেখার সময়, আপনি কী অ্যালগরিদম বাছাই করবেন বা কেবল কুইকোর্টের সাথে নিষ্পত্তি করবেন (যা বেশিরভাগ লাইব্রেরি কেবল সারণাকে কল করে) তা কী বিবেচনা করেন? কিছুটা ক্ষেত্রে এটি নির্দিষ্ট পরিস্থিতিতে লাভজনক হতে পারে তবে অন্যদিকে সমস্যাটিকে বিশ্লেষণ করতে এবং মানদণ্ড তৈরি করতে যথাযথ অপ্টিমাইজেশনের জন্য কিছু সময় প্রয়োজন।

উত্তর:


12

সাধারণভাবে, অদ্ভুত কিছু করার নির্দিষ্ট প্রয়োজন না থাকলে ডিফল্ট পদ্ধতিগুলি ব্যবহার করা সবকিছুই অনেক বেশি পঠনযোগ্য / বোধগম্য করে রাখে রাস্তা আইএমএইচওতে।

আপনি যদি (বা কিছু ক্ষেত্রে দৃ strongly়ভাবে সন্দেহ) অনুভব করেন তবে আপনার পারফরম্যান্স সমস্যা রয়েছে যা জটিলতা যুক্ত করার সময়।

অন্যদিকে, আপনি যদি স্বল্প পরিমাণে ভাষা ব্যবহার করে থাকেন যে আপনার ধরণের অবজেক্টগুলির জন্য অন্তর্নির্মিত বাছাই করা নেই তবে আপনার বাজেগুলি বা সেগুলি বাস্তবায়নের জন্য একটি বা দুটি বাছাই করার চেষ্টা করুন।


6

প্রদত্ত লাইব্রেরির রুটিনগুলিকে সর্বদা কল করুন, যদি না আপনার খুব, খুব ভাল কারণ না থাকে (এবং আপনাকে কেন এটি ডকুমেন্ট করতে হবে)।

এটি কারণ বাছাই করা অ্যালগরিদমগুলি একেবারে সঠিকভাবে পাওয়া শক্ত। খুব বড় ডেটাসেট সহ জাভা কুইকোর্টে একটি বাগ ছিল, যা সনাক্ত, স্থির এবং সূর্যের দ্বারা গ্রাহকদের কাছে সরবরাহ করা হয়েছিল, সুতরাং আপনার দরকার নেই।

এছাড়াও জাভা 7-এ ডিফল্ট বাছাই করা হয়েছে আরও উন্নততর উন্নততর সাজানোর ক্ষেত্রে। বিনামূল্যে।

যদি না ডিফল্ট কেমন হয় provably না ভাল যথেষ্ট তোমার জন্য, এটি দিয়ে বিদ্ধ।


3

একটি সম্মেলনে একবার আমি এই সম্পর্কে একটি দুর্দান্ত গল্প শুনেছি।

মাইক্রোসফ্টে কেউ একজন ভিবি অ্যাপ (সি। ভিবি 3) লিখছিলেন এবং একগুচ্ছ লোককে মেল করেছিলেন যে তাঁর মূল্যবোধ রয়েছে এবং তিনি চান যে এগুলি কীভাবে করা উচিত, সেগুলি তাদের ঠিকঠাকভাবে কম্বোবক্সে হাজির করা উচিত।

প্রত্যেকে তাদের পুরানো কম্পিউটার বিজ্ঞানের পাঠ্য বইয়ের জন্য ডুব দিয়েছিল, অত্যন্ত দক্ষ রুটিনগুলি অনুসন্ধান করে এবং ভিজ্যুয়াল বেসিকের কাছে এগুলি পোর্ট করে এবং তাদের কাছে এটি মেইল ​​করে। একটি ছেলেরা "মেগাবোক্সে কত মান?" ফিরে পাঠিয়েছিল।

"প্রায় 50" উত্তর এসেছিল।

"কেবল বাছাই করা সম্পত্তিটি সত্য হিসাবে সেট করুন"।

.৯.৯৯৯% এর মধ্যে বাছাই লাইব্রেরি, নিয়ন্ত্রণ বা এসকিউএল ব্যবহার করে লাইব্রেরি রুটিনের মধ্যে পারফরম্যান্স পার্থক্য হিসাবে বেছে নিন এবং আপনার লেখার যে কোনও কিছুই নগণ্য হবে এবং প্রচেষ্টা এবং রক্ষণাবেক্ষণের ওভারহেড পরিণতিগুলি ছাড়িয়ে যাবে।


1

অকাল অপটিমাইজেশন সম্পর্কে ক্লাসিক উক্তিটি টানানোর এই সময়। বেশিরভাগ ক্ষেত্রে, এটি সত্যিই কিছু যায় আসে না। হেক, এই দিনগুলিতে সিপিইউগুলির গতি সহ, আপনি সম্ভবত বেশিরভাগ ডেটা সেটগুলি বাছাই করতে পারেন এবং সত্যই বেশি কিছু লক্ষ্য করতে পারেন না। তবে যখন আপনি সত্যিই বড় ডেটা সেটগুলি বাছাই করেন, এবং বাছাই করা পারফরম্যান্স একটি ইস্যু হয়ে উঠতে শুরু করে, তখন আপনার অবশ্যই অন্যান্য বিকল্পগুলির দিকে নজর দেওয়া উচিত।


বুদ্বুদ সাজানোর? এটির পারফরম্যান্স গড় এবং সবচেয়ে খারাপ ক্ষেত্রে সবচেয়ে খারাপ এবং সেরা ক্ষেত্রে সন্নিবেশ সাজানোর সমান। এটি ব্যবহার করার কোনও কারণ নেই।
হিপ্পো

1
@ হিপ্পো: আমি আসলে বুদ্বুদ বাছাইয়ের পক্ষে পরামর্শ দিচ্ছিলাম না। আমি বোঝাতে চেয়েছিলাম যে আধুনিক কম্পিউটারগুলি যথেষ্ট দ্রুতগতির যে বেশিরভাগ ক্ষেত্রে এটি আপনার অ্যালগরিদমটি কত ধীরে ধীরে ধীরে ধীরে তা বিবেচনা করে না কারণ ব্যবহারকারী খেয়াল করবেন না is
ম্যাসন হুইলারের

কীভাবে বোগোসোর্ট ?
dsimcha

0

যদিও এটি বিটস এবং টাইমস্লাইসগুলিতে স্পষ্টতই কিছু যায় আসে না। আমি কোয়ারকোর্টের চেয়ে লিখন এবং বোঝা সহজতর হিসাবে মার্জ সাজাকে খুঁজে পাই। সুতরাং আমি যদি আমার নিজস্ব বাছাই করা অ্যালগরিদম লিখতে যাচ্ছি আমি এটি ব্যবহার করব।


ভিভা একীভূত! এবং একটি হালকা উন্নত ধ্রুবক শব্দ, এবং কোন ভয়াবহ সবচেয়ে খারাপ পরিস্থিতি।
ফ্রাঙ্ক শায়ারার

0

কমপক্ষে একটি দক্ষ লিখিত গ্রন্থাগারে, আমি আশা করব যে বিল্ট- ইনটি কেবল একটি কুইকোর্টের পরিবর্তে sortএকটি অন্তর্মুখ হিসাবে প্রয়োগ করা হবে । পার্থক্যটি খুব কমই গুরুত্বপূর্ণ, তবে ইনট্রোসোর্ট কুইকসোর্টের সবচেয়ে খারাপ ক্ষেত্রে সবচেয়ে বেশি সাধারণ ক্ষেত্রে সবচেয়ে কম প্রভাব ফেলতে পারে effect

আপনার প্রশ্নের উত্তর দেওয়ার জন্য, হ্যাঁ - হ্যাঁ - এটি আপনার সাধারণত শুরু করা উচিত এবং যতক্ষণ না আপনার প্রোফাইলার ফলাফল না পাওয়া পর্যন্ত এটি বোঝায় যে এটি একটি সমস্যা, সেখানেই এটি থাকা উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.