5 টি উপাদানকে বাছাই করতে (অর্ডার) করতে কমপক্ষে তুলনা প্রয়োজন


22

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

সমাধান : আছে 5! = 120 সম্ভাব্য ফলাফল। সুতরাং বাছাইয়ের পদ্ধতির জন্য একটি বাইনারি গাছের কমপক্ষে 7 স্তর থাকতে হবে। প্রকৃতপক্ষে, ≥ 120 ইঙ্গিত≥ 7. তবে 7 তুলনা যথেষ্ট নয়। পাঁচটি উপাদানকে বাছাই করতে (ক্রম) আনতে কমপক্ষে তুলনা প্রয়োজন number এইচ2hh

এখানে আমার প্রকৃত প্রশ্ন হচ্ছে, আমি একজন অ্যালগরিদম এটি 8 তুলনায় করে খুঁজে পাইনি কিন্তু আমি কিভাবে প্রমাণ করতে পারেন যে এটা করতে পারবে না 7 তুলনা করা?


উত্তর:


27

সমাধানটি ভুল। ডেমুথ [1; 2, সেকেন্ডের মাধ্যমে 5.3.1] দেখায় যে পাঁচটি মান কেবলমাত্র সাতটি তুলনা ব্যবহার করে বাছাই করা যায়, অর্থাত্ "তথ্য তাত্ত্বিক" নিম্ন সীমাটি এই ক্ষেত্রে শক্ত।

উত্তরটি একটি সাধারণ অ্যালগরিদম নয়, একটি পদ্ধতি । এটা খুব সুন্দর না। এটি রূপরেখা:n=5

  1. প্রথম দুটি জোড়া বাছাই করুন।

  2. জোড়গুলিকে তাদের নিজ নিজ বৃহত্তর উপাদানটি অর্ডার করুন।

    [a,b,c,d,e]a<b<dc<d

  3. e[a,b,d]

  4. c

c<dc

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


  1. পিএইচডি থিসিস (স্ট্যানফোর্ড বিশ্ববিদ্যালয়) দ্বারা এইচবি ডেমুথ (1956)

    আরও দেখুন ইলেক্ট্রনিক ডেটা বাছাইকরণ হাফ বোর্ড Demuth দ্বারা (1985)

  2. ডোনাল্ড ই নুথ দ্বারা বাছাই এবং অনুসন্ধান ; আর্ট অফ কম্পিউটার প্রোগ্রামিং ভলিউম। 3 (দ্বিতীয় সংস্করণ, 1998)

5
পরীক্ষাটি দেখানোর জন্য পাঁচটি পয়েন্ট দেয় যা অসম্ভব। আপনার উত্তরের জন্য আপনি কতগুলি পয়েন্ট পাবেন তা অবাক করুন :-) (সম্ভবত পরীক্ষাটি ভুল হতে পারে না বলে শূন্য)।
gnasher729

0

log(n!)n<>n!log(5!)6.91

5!=12027=128

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


Ω(nlogn)

তাত্ত্বিক নিম্নতম সীমাটি সবচেয়ে খারাপ ক্ষেত্রে সিল (লগ 2 (এন!)), কারণ সেখানে ঠিক এন! ক্রিয়াকলাপ, এবং যদি কে তুলনা থাকে আপনার প্রয়োজন 2 ^ k ≥ n !. এটি কেবল একটি ধ্রুবক ফ্যাক্টর 1 নয়, এটি সঠিক।
gnasher729 15

-1

আমি কুইকোর্টের কথা ভাবছিলাম। আপনি যে উপাদানটিকে মাঝারি উপাদান হিসাবে ঘটবে তা পাইভট উপাদান হিসাবে নির্বাচন করুন। পাইভটকে 4 টি আইটেমের সাথে বাছাইয়ের ফলস্বরূপ বাকী 4 টি আইটেমের সাথে তুলনা করুন। এই পাইলগুলির প্রত্যেকটি 1 টি তুলনায় বাছাই করা যায়। যদি আমি একটি ভয়ানক ভুল না করি তবে 5 টি আইটেম কেবলমাত্র 6 টি তুলনায় সম্পূর্ণরূপে বাছাই করা হয়েছিল এবং আমি মনে করি যে এটি কাজ করার জন্য প্রয়োজনীয় তুলনাগুলির পরম সংখ্যা। আসল প্রশ্নটি ছিল 5 টি উপাদানকে বাছাই করার জন্য কমপক্ষে তুলনা করার সংখ্যা।


1
1 টি তুলনায় 3 টি উপাদানের একটি গাদা বাছাই করা যায় কীভাবে?
xskxzr

আপনি কোন 3 উপাদান গাদা সম্পর্কে কথা বলছেন? আমি উপরে বর্ণিত যা প্রথম পাসের পরে 2 টি পাইল 2 উপাদান তৈরি করে।
স্কটিটিক

আমি ভেবেছিলাম যে আপনি পিভট হিসাবে একটি এলোমেলো উপাদান ব্যবহার করেন। আপনি কীভাবে মধ্য তুলনামূলকভাবে 4 টি তুলনাতে পাইভট হিসাবে নির্বাচন করতে পারেন?
xskxzr

এটাই আমি বলছি না উপরের থেকে "যেহেতু 5! = 120 .... বাইনারি সিদ্ধান্ত গাছ ব্যবহার করে আপনি 5 টি তুলনা করে 5 টি আইটেম বাছাই করতে পারেন" " উপাদানগুলির ক্রমান্বনের সংখ্যা 120 হয় তবে একটি শাখা থাকতে হবে যার কেবল 6 টি তুলনা রয়েছে কারণ কাজটি করতে রিকম্পোর্টের একটি এলোমেলো নমুনা চলতে মাত্র 6 টি লেগেছিল। 120 অনুক্রমের মধ্যে একটি সাজানো তালিকার জন্য। এই শাখায় 4 টির তুলনা কম থাকতে পারে।
স্কটিটিক

-2

আপনি যদি অ্যালগরিদম পরীক্ষা করতে পারেন তবে এটি সমস্ত সংখ্যার সংমিশ্রণে পরীক্ষা করুন। আপনার যদি প্রচুর সংখ্যা থাকে তবে প্রচুর এলোমেলো সংমিশ্রণে পরীক্ষা করুন। সুনির্দিষ্ট নয়, তবে সমস্ত সংমিশ্রণের চেয়ে দ্রুত।

ন্যূনতম
a <b <c = 2
a <b <c <d = 3
a <b <c <d <e = 4

সর্বাধিক
3 ^ 3
4 ^ 4
5 ^ 5

মাঝারি সন্নিবেশ 4-6 সংখ্যা জন্য 3-6।
4 সংখ্যার জন্য 4-5 ব্যবহারকে মার্জ করে।
উইকি দ্বারা সর্বনিম্ন তুলনা 4 সংখ্যার জন্য 5 হয় :) 5 এর জন্য 7 হয় 7. আপনি এখনও 8 ব্যবহার করেন।
https://en.wikedia.org/wiki/Compistance_sort#Number_of_comparisons_required_to_sort_a_list
তুলনা করার আগে আপনি যদি সমস্ত কিছু জানেন তবে আপনি তুলনা দিয়ে যেতে পারেন। 4 টি সংখ্যার জন্য আমার গড় সমস্ত সংমিশ্রণ 3.96 / 1024।


2
এটি প্রশ্নের উত্তর দেয় না। প্রশ্নটি জিজ্ঞাসা করে যে কীভাবে প্রমাণ করতে হয় যে মাত্র 7 টি তুলনা ব্যবহার করে বাছাই করার কোনও উপায় নেই। আপনার পদ্ধতির ব্যবহার করতে, আমাদের সমস্ত আলগোরিদিমগুলি গণনা করতে হবে যা সর্বাধিক comp টি তুলনা করে। আমি মনে করি যে যুক্তিসঙ্গত সময়ে গণনা করার মতো অনেক বেশি অ্যালগরিদম রয়েছে। যাই হোক না কেন, আমি দেখতে পাচ্ছি না এটি বিদ্যমান উত্তরের সাথে কী যুক্ত করে, যা ইতিমধ্যে প্রশ্নের সম্পূর্ণ উত্তর দিয়েছে। আমরা পছন্দ করি যে আপনি যেখানে নতুন কিছু যুক্ত করতে পারবেন এমন প্রশ্নের উত্তর দেওয়ার দিকে মনোনিবেশ করুন।
ডিডাব্লিউ

আলগের জন্য অ্যাড গ্রাফিক এবং টিপ। সিএমপি এর আগে থেকে সিএমপি মান সম্পর্কে পূর্বাভাস। এবং তার মিনিট 7, অন্যান্য উত্স 8, সত্য ন্যূনতম। 4 হয় !!! 4 কেবলমাত্র asc / desc ক্রমের জন্য কাজ। এক্স 1: 00000 01234 43210 10000 ... এক্স 2: মাঝখানে সন্নিবেশ করুন: 43210, 4 শুরু করুন, 3, সিপি 4> 3 পান, পান 2, সিপি 4> 2, সিপি 3> 3, পান 1, সিপি (মধ্য) 3> 1, সিপি 2> 1, 0, সিপি (মাঝারি) 3> 0, সিপি 2> 0, সিপি 1> 0 ... 8 সেন্টিমিটার পান। কংক্রিট অর্ডার বা আলগের জন্য 7 টি সম্ভব হতে পারে। আপনি আমার পৃষ্ঠায় 4 নম্বরের জন্য দেখতে পারেন mlich.zam.slu.cz/js-sort/x-sort-x2.htm , গড় 3.96। সর্বনিম্ন সর্বোচ্চ 3-6। 5 এর জন্য পরিবর্তন করতে পারে এবং তার আলগ পরীক্ষা করতে পারে।
পিটার মিলিচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.