এই কুইকোর্টের সঠিকতা প্রমাণটি বোঝার চেষ্টা করা হচ্ছে


10

এই প্রমাণ অন্তর্ভুক্তি দ্বারা প্রমাণ, এবং নিম্নলিখিত হিসাবে যায়:

পি (এন) এমন একটি দাবি যা "কুইকসোর্ট দৈর্ঘ্যের প্রতিটি ইনপুট অ্যারে সঠিকভাবে সাজান।"

বেস কেস: দৈর্ঘ্যের প্রতিটি ইনপুট অ্যারে ইতিমধ্যে সাজানো হয়েছে (পি (1) হোল্ড)

প্ররোচিত পদক্ষেপ: স্থির n => ২ দৈর্ঘ্যের কিছু ইনপুট অ্যারে ঠিক করুন।

দেখাতে হবে: যদি পি (কে) সমস্ত কে <এন ধরে রাখে, তবে পি (এন) পাশাপাশি ধরে রাখে

তারপরে তিনি একটি অ্যারে আঁকেন কিছু পিভট পি এর চারপাশে বিভক্ত। সুতরাং তিনি p আঁকেন, এবং অ্যারের অংশটিকে <পি 1 ম অংশ হিসাবে কল করেন এবং যে অংশটি> পি এটি দ্বিতীয় অংশ। অংশ 1 = কে 1 এর দৈর্ঘ্য এবং অংশ 2 এর দৈর্ঘ্য কে 2 2 পার্টিশন সাবরুটাইন (পূর্বে প্রমাণিত) এর সঠিকতার প্রমাণ দ্বারা, পিভট পি সঠিক অবস্থানে চলে যায়।

এখানে চিত্র বর্ণনা লিখুন

ইনডাকটিভ হাইপোথিসিস দ্বারা: 1 ম, 2 য় অংশ পুনরাবৃত্ত কলগুলির দ্বারা সঠিকভাবে সাজানো হয়। (পি (কে 1), পি (কে 2) ব্যবহার করে)

সুতরাং: পুনরাবৃত্তির কলগুলির পরে, পুরো অ্যারেটি সঠিকভাবে বাছাই করা হয়।

Qed

আমার বিভ্রান্তি : এটি এর সঠিকতা কীভাবে প্রমাণ করে ঠিক তা দেখতে আমার অনেক সমস্যা হয় problem সুতরাং আমরা ধরে নিই যে পি (কে) প্রকৃতপক্ষে সমস্ত প্রাকৃতিক সংখ্যার জন্য রয়েছে << এন।

আমি এখনও অবধি দেখানো বেশিরভাগ আনয়ন প্রমাণ যেমন: বেজ কেস প্রমাণ করুন এবং দেখান যে পি (এন) => পি (এন + 1)। তারা সাধারণত কিছু ধরণের বীজগণিত ম্যানিপুলেশন জড়িত। এই প্রমাণটি খুব আলাদা বলে মনে হচ্ছে এবং কীভাবে এটিতে আনয়ন ধারণাটি প্রয়োগ করা যায় তা আমি বুঝতে পারি না। আমি কিছুটা কারণ বলতে পারি যে পার্টিশন সাববুটিনের নির্ভুলতা মূল। এটির যথাযথতার জন্য যুক্তিটি নিম্নরূপ: আমরা জানি যে প্রত্যেকটি পুনরাবৃত্ত কল, এটি একটি পিভটের চারপাশে অ্যারেরকে ভাগ করে দেবে। এই পিভটটি তখন তার যথাযথ অবস্থানে থাকবে। তারপরে প্রতিটি সুবরেই আরও একটি পিভটের চারপাশে বিভাজন করা হবে এবং সেই পিভটটি তার যথাযথ অবস্থানে থাকবে। আপনি 1 দৈর্ঘ্যের একটি সাবহারি না পাওয়া পর্যন্ত এটি চলতে থাকে, যা তুচ্ছভাবে বাছাই করা হয়।

তবে আমরা ধরেই নিচ্ছি না যে পি (কে) সমস্ত কে <এন এর জন্য ধরে রেখেছে .... আমরা আসলে এটি দেখিয়ে যাচ্ছি (যেহেতু পার্টিশন সাব্রোটাইন সর্বদা একটি উপাদানকে তার যথাযথ অবস্থানে রাখবে।) আমরা কি ধরে নিচ্ছি না যে পি (কে) সমস্ত কে


"কোয়ে" কি? আপনি কি "কিউইডি" বলতে চাইছেন? (ল্যাটিন প্রতিপাদ্য যা কোন শব্দ জন্য শুরু ধারণ করে না ইউ )
Bakuriu

1
আমি সত্যই কিউইডি বোঝাতে চাইছিলাম। আমার অনুমান যে আমার বিভ্রান্তি আমাকে "কী?" স্প্যানিশ ভাষায়
FrostyStraw

উত্তর:


13

P(k)k<nP(n1)P(n)

আপনি যে প্রমাণটি বর্ণনা করেছেন তা শক্তিশালী গাণিতিক আনয়নের নীতি হিসাবে পরিচিত এবং এর ফর্ম রয়েছে

P(n)n{1,2,}

  1. P(1)

  2. (k<n[P(k)])P(n)

P(n)n1

nknk1

k<nnk1<n


2
P(1)n=1k<1,P(k)P(1)

ঠিক আছে তাই ... পরিষ্কার হতে ... আমরা পি (কে) ধরে রাখি সমস্ত কে <এন এর জন্য সত্য। এবং যেভাবে আমরা পি (কে) ==> পি (এন) (সকল কে <এন) দেখানোর উপায় তা জেনে একত্রিত করে যে পিভট নিশ্চিতভাবে তার সঠিক অবস্থানে থাকবে এবং অনুমানের মাধ্যমে (প্ররোচক অনুমান) ) যে বাম এবং ডান subarrays এছাড়াও বাছাই করা হয়। বেস কেস (যা কে = 1 <এন) এর সাথে একত্রিত করুন, এবং প্রমাণটি সম্পূর্ণ?
FrostyStraw

আমি অনুমান করি যে পাইভটি তার সঠিক অবস্থানে রয়েছে তা জানার পক্ষে যথেষ্ট হবে না, তবে ডান সুব্রায়টি পিভটের চেয়ে সব চেয়ে বড় এবং বাম
দিকটি

@ ফ্রস্টিস্ট্রাও এটি চাইনিজ ফিসফিস।
রাফেল

1
@ ফ্রস্টিস্ট্রেও হেহে, আমি প্রমাণ কৌশলটি বোঝাতে চাইছি। :)
রাফায়েল

7

এই প্রমাণটি সম্পূর্ণ অন্তর্ভুক্তির নীতিটি ব্যবহার করে :

হটাত যদি:

  • P(1)
  • n>1P(1),,P(n1)P(n)

P(n)n1

Q(m)P(1) and P(2) and  and P(m)

এখন, কুইকসোর্টের নিম্নলিখিত সংস্করণটি এর ইনপুটটি সঠিকভাবে সাজিয়েছে তা প্রমাণ করার জন্য সম্পূর্ণ প্রবর্তন ব্যবহার করা যাক:

Quicksort(A, n)
    if n = 1 then:
        return
    else:
        let X[1...x] consist of all elements of A[2],...,A[n] which are at most A[1]
        let Y[1...y] consist of all elements of A[2],...,A[n] which are larger than A[1]
        call Quicksort(X, x)
        call Quicksort(Y, y)
        set A to the concatenation of X, A[1], Y

এখানে A[1],...,A[n]ইনপুট অ্যারে এবং nতার দৈর্ঘ্য। আমরা যে বিবৃতিটি প্রমাণ করতে চাইছি তা নিম্নরূপ:

An1AB

  1. A
  2. π1,,πn1,,nB[i]=A[πi]
  3. B[1]B[2]B[n]

P(n)

An1BQuicksort(A, n)B[1]B[2]B[n]

nn=1n>1X,x,Y,yQuicksortx,y<n

X[1]X[2]X[x]Y[1]Y[2]Y[y]
XYX[x]A[1]<Y[1]
X[1]X[x]A[1]<Y[1]Y[y].
B[1]B[n]P(n)

4

আর্গুমেন্টের অনুপস্থিত অংশ হ'ল '<' - এর অর্থ হ'ল সংবেদনশীলতা - যদি এমন সম্পত্তি যে কোনও <বি এবং বি <সি হয়, তবে একটি <সি। চূড়ান্ত অ্যারে বাছাই করা হয়েছে এমন প্রমাণটি এরকম কিছু হয়:

A [i], A [j] এ অ্যারে পোস্ট-সাজ্টের উপাদান হওয়া উচিত, যেখানে আমি <জে। তারপরে এ [আই] <এ [জ] নীচের একটি অবস্থান নির্ধারণের ক্ষেত্রে অনুসরণ করে (এবং অন্য কোনও মামলা নেই):

(ক) i এবং j প্রথম বিভাগে রয়েছে - ক [i] <ক [জ] এর পরে পুনরাবৃত্তি / অন্তর্ভুক্তি হয়।

(খ) i এবং j দ্বিতীয় বিভাজনে রয়েছে - ক [i] <ক [জ] এর পরে পুনরাবৃত্তি / প্রবর্তন হয়।

(গ) আমি প্রথম বিভাজনে আছি এবং j হল পিভট এর সূচক - এ [আই] <এ [জ] বিভাজন প্রক্রিয়া প্রমাণের পরে অনুসরণ করে।

(গ) আমি পাইভট এর সূচক এবং জে দ্বিতীয় বিভাগে রয়েছে - এ [আই] <এ [জ] বিভাজন পদ্ধতির প্রমাণ সহ অনুসরণ করে।

(ঙ) আমি প্রথম বিভাজনে আছি এবং জে দ্বিতীয় বিভাজনে রয়েছে - তারপরে পার্টিশন পদ্ধতি দ্বারা, এ [আই] <পিভট এবং পাইভট <এ [জে]। সুতরাং সংক্রামকতার দ্বারা, এ [আই] <এ [জে]।

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