দক্ষতার সাথে একটি অ্যারেতে প্রতিটি উপাদানগুলির জন্য ছোট ছোট উপাদানগুলির সন্ধান করা


9

আমি এই সমস্যায় আটকে আছি:

একটি অ্যারের দেওয়া প্রথম স্বাভাবিক সংখ্যার এলোমেলোভাবে permuted, একটি বিন্যাস সংস্থাপিত হয়, যেমন যে থেকে উপাদানগুলি সংখ্যা থেকে যা চেয়ে ছোট হয় । AnBB(k)A(1)A(k1)A(k)

i) দেওয়া হয়েছে আপনি সময়ে খুঁজে পাবেন ? ii) দেওয়া হয়েছে আপনি সময়ে খুঁজে পেতে পারেন ?ABO(n)
BAO(n)

এখানে, । একটি কংক্রিট উদাহরণের জন্য: B(1)=0

|A843172965B000031644|

আমাকে কি কেউ সাহায্য করতে পারবেন? ধন্যবাদ।


আমি এটি পেয়েছি: কম্পিউটিং পারমিটেশন এনকোডিংগুলি যা এই সমস্যার জন্য অ্যালগরিদম দেয়। কমপক্ষে আমি মনে করি তারা একই সমস্যা। O(nlogn)
রিয়েলজ স্লাও

@ মার্কস আপনি যে ইঙ্গিত দিয়েছেন তার অর্থ কি আপনার কাছে সমাধান আছে?
এজেড

1
@ আজেদ এর অর্থ, আমার কাছে একটি অ্যালগরিদম রয়েছে, যদিও এটি স্থান ছাড়াই সরল অ্যালগরিদমের জন্য লাগে এবং যদি আমাদের স্থান অনুমোদিত হয় তবে লাগে । এই মুহুর্তে, আমি পক্ষে সম্ভব নয় এবং উভয়ই একই অ্যালগরিদমের দিকে ঝুঁকছি। O(n2)O(nlogn)O(n)
মার্বস

@Merbs। আমি মনে করি আপনার ইঙ্গিতটি সঠিক ট্র্যাকের দিকে নিয়ে যেতে পারে। আমিও একটি সমাধান পেয়েছি (আপনার ইঙ্গিত অনুসরণ করে)। আমি অনুমান করি যে বিশ্লেষণে একটি কৌশল আছে যা এটি চলে যায় .. আমি মনে করি কৌশলটি হ'ল জ্ঞান যা কেবল 1: থেকে যায় । O(n)An
আজেদ

2
এই কাগজটি একটি অ্যালগরিদমও দেয়। আপনি কি নিশ্চিত যে এর জন্য কোনও অ্যালগরিদম রয়েছে? O(nlogn)O(n)
রিয়েলজ স্লাও

উত্তর:


1

নির্ধারণের জন্য সরল অ্যালগরিদম থেকে :BA

জন্য , মান নির্ধারণ প্রতিটি তুলনা করে থেকে জন্য এবং যারা বেড়ে চলেছে যে সন্তুষ্ট ।k=1,,nB(k)A(i)A(k)i=1,,kA(i)<A(k)

এই অ্যালগরিদম অন্য ( বার), সাথে অন্যান্য ইত্যাদির সাথে এর তুলনা করে তাই মোট তুলনা সংখ্যাটি is । তবে এটি আমরা করতে পারি সেরা নয়। উদাহরণস্বরূপ, দিকে তাকানো , আমাদের কোনও তুলনা করতে হবে না! কারণ এটি প্রথম প্রাকৃতিক সংখ্যা এবং এটির গ্যারান্টেড (নির্বিশেষে নির্বিশেষে) যে নিম্ন প্রাকৃতিক সংখ্যা থাকবে। সম্পর্কে কী বলা যায় ? মাধ্যমে পরীক্ষা করার পরিবর্তে আমরা কেবল পরীক্ষা করতে পারি । এটাই:A(1)n1A(2)n2(n1)(n2)2B(n)B(n)=A(n)1 nn1B(n1)A(1)A(n2)A(n)

জন্য উপরোক্ত অ্যালগরিদম ব্যবহার; জন্য বিপরীত অ্যালগরিদম ব্যবহার করুন: নির্ধারণ এটি প্রাথমিকভাবে সেটিং দ্বারা এবং তারপর বিয়োগ প্রতিটি এন্ট্রির জন্য জন্য যা চেয়ে কম ।k=1,,n2k=n2,,nB(k)A(n)11A(i)i=k+1,,nA(k)

এটি পদক্ষেপ, যা এখনও । এও নোট করুন যে থেকে তৈরির ক্ষেত্রে , যদি তবে ।2×(n21)(n22)2=(n2)(n4)4O(n2)ABB(n)=A(n)1A(n)=B(n)+1

তবে এখন আরও জরিমানার জন্য। যদি আমাদের কিছু অতিরিক্ত স্থান বা স্থানে স্থানে অনুমতি দেওয়া হয় তবে আমরা সংখ্যাগুলি তাদের তুলনা করার সাথে বাছাই করতে পারি। উদাহরণস্বরূপ:

|A843172965S987432165B0000316|

তাদের সমস্তটি পরীক্ষা করার পরিবর্তে (বা তাদের ক্রমানুসারে পরীক্ষা করা) পরিবর্তে আমরা প্রতিটি নির্ধারণ করতে বাইনারি অনুসন্ধান ব্যবহার করতে পারি । তবে, বাছাই করতে এখনও সময় লাগে ।B(k)O(nlogn)


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

0

বরং প্রতিটি নির্ধারণের চেয়ে একটি সময়ে এক, আমরা উন্মুখ হতে পারে এবং শুধুমাত্র প্রতিটি নম্বর দিয়ে যেতে একবার ! তবে আমরা স্থান ব্যবহার করব :B(k)A n

|A123456789B800000000104000011112030001222230101123333407011233345320123444561901234445666012344567450123456784|

ইতিমধ্যে নির্ধারিত হয়েছে তাদের আপডেট না করে আমরা আরও বেশি সময় বাঁচাতে পারতাম (এটি হ'ল প্রথম পদক্ষেপের পরে আপডেট করার কোনও অর্থ নেই ) তবে সবচেয়ে খারাপ ক্ষেত্রে এখনও আমাদের update আপডেট করতে হবে বার8(n)(n+2)2


0

আমি এবং ২ য় উভয়ই এখানে # বিশদ_গ্রেটার_এলিমেন্টটি ব্যবহার করে সমাধানযোগ্য । তবে সমস্যাটি থেকে কিছুটা শক্ত কিন্তু সমাধানের আগে আপনাকে আরও বৃহত্তর উপাদান শিখতে হবে:

  1. বিবেচনা আমরা প্রতিটি উপাদানের জন্য একটি ভেক্টর আছে নাম এটি উপাদানের জন্য । এখন একবার ডান দিক থেকে বামে কিন্তু উপাদান সেটিং ছাড়া শুরু আগামী বৃহত্তর অ্যালগরিদম চালানোর এ তার পরবর্তী বৃহত্তর উপাদান সূচক ধাক্কা উপাদান আছে যা তাদের পরবর্তী বেশী element.then বারবার অ্যারের উপর ডান এবং তারপর বামে যেখানে ভেক্টর এর আকার। এবং এর কারণ পরের বৃহত্তর অ্যালগরিদম হ'ল এবং এটিও পুনরাবৃত্তি হ'লASiiiASiiB[i]=j=0x(Si[j]+1)xSiΘ(n)Θ(n)Θ(n)

দ্বিতীয় অংশটিও একইভাবে লক্ষণীয় যে আমরা সম্পাদনায় হালকাতম উপাদানের মান পেতে পারি : আমার সমাধানটি ভুল বলে মনে হচ্ছে এটির কোনও সমাধান নেইO(1)o(n)

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