ও (এন) জটিলতায় অর্ডার সহ শব্দ ফ্রিকোয়েন্সি


11

একটি জাভা বিকাশকারী পদের জন্য একটি সাক্ষাত্কারের সময়, আমাকে নিম্নলিখিত জিজ্ঞাসা করা হয়েছিল:

দুটি ফাংশন লাগে এমন একটি ফাংশন লিখুন:

  1. একটি স্ট্রিং একটি পাঠ্য নথির প্রতিনিধিত্ব করে এবং
  2. প্রত্যাবর্তনের জন্য আইটেমের সংখ্যা সরবরাহ করে।

ফাংশনটি এমনভাবে প্রয়োগ করুন যে এটি শব্দের ফ্রিকোয়েন্সি অনুসারে অর্ডার করা স্ট্রিংগুলির একটি তালিকা ফেরত দেয়, এটি সবচেয়ে বেশি ঘন ঘন ঘটে প্রথম শব্দ। আপনার সমাধান চালানো উচিতO(n) সময় যেখানে n নথিতে অক্ষরের সংখ্যা।

নিম্নলিখিতটি আমি উত্তর দিয়েছি (সিউডোকোডে), তা নয় O(n) বরং O(nlogn)সময় কারণ বাছাই। কীভাবে করব তা আমি বুঝতে পারি নাO(n) সময়।

wordFrequencyMap = new HashMap<String, Integer>();
words = inputString.split(' ');

for (String word : words) {
  count = wordFrequencyMap.get(word);
  count = (count == null) ? 1 : ++count;
  wordFrequencyMap.put(word, count);
}

return wordFrequencyMap.sortByValue.keys

কেউ কি জানেন বা কেউ আমাকে কিছু ইঙ্গিত দিতে পারেন?


1
একটি হ্যাশ টেবিল ব্যবহার করুন।
যুবাল ফিল্মাস

হ্যাশ টেবিল ব্যবহার করা সমস্যার সমাধান করে না। তদুপরি, হ্যাশটেবল হ'ল লিগ্যাসি জাভা।
ব্যবহারকারী 2712937

হ্যাশ টেবিলগুলি সাধারণত জটিলতাটি হ্রাস করার কৌশল O(nlogn) প্রতি O(n)। এমনকি যদি তারা লিগ্যাসি জাভা হয়, তার অর্থ যাই হোক না কেন। আমি এই বিশেষ কেসটি পরীক্ষা করে দেখিনি, তাই আপনি ঠিক থাকতে পারেন।
যুবাল ফিল্মাস

@YuvalFilmus। থ্যাঙ্কস তবে হ্যাশ টেবিল হ্যাশ ম্যাপের মতোই একইরকম, যা আমি ইতিমধ্যে ব্যবহার করছি (2 ডেটা স্ট্রাক্টের মধ্যে প্রধান পার্থক্যটি সিঙ্ক্রোনাইজেশন, যা এখানে প্রযোজ্য নয়)। আমার লগ (এন) হ্যাশ মানচিত্রে মানগুলি বাছাই করে আসে।
ব্যবহারকারী 2712937

3
যাইহোক, এই সাইটটি কোড নয়, ধারণা এবং অ্যালগরিদমগুলিতে ফোকাস করে। অতএব, সাধারণত আমরা আপনাকে জাভা কোডটি সরাতে এবং আপনার পদ্ধতির একটি ধারণামূলক বিবরণ দিতে বলি (সম্ভবত প্রয়োজনে সংক্ষিপ্ত উচ্চ-স্তরের সিউডোকোড সহ)। এছাড়াও, এই সাইটে সম্পর্কিত প্রশ্নটি কোন ডেটা স্ট্রাকচার এবং অ্যালগরিদমগুলি ব্যবহার করতে হবে; নির্দিষ্ট জাভা এপিআই এই সাইটের অফ-টপিক (তবে আপনি স্ট্যাকওভারফ্লোতে এটি সম্পর্কে জিজ্ঞাসা করতে পারেন) এবং একইভাবে, Hashtableউত্তরাধিকারী জাভা কিনা তা এই সাইটের উদ্দেশ্যগুলির জন্য সত্যই অপ্রাসঙ্গিক।
DW

উত্তর:


10

আমি বিতরণ গণনার বিভিন্নতার পরামর্শ দিচ্ছি:

  1. পাঠ্যটি পড়ুন এবং প্রতিটি নোডে একটি গণনা বজায় রেখে ট্রাইতে মুখোমুখি সমস্ত শব্দ সন্নিবেশ করুন , এই নোড দ্বারা প্রতিনিধিত্ব করা শব্দটি প্রায়শই কী ঘটেছিল। সর্বোচ্চ শব্দ গণনা বলতে ট্র্যাক রাখুন maxWordCound। -O(n)
  2. আকারের একটি অ্যারে শুরু করুন maxWordCount। প্রবেশের ধরণ হল স্ট্রিংয়ের তালিকা। -O(n), যেহেতু গণনা বেশি হতে পারে না।
  3. ট্রাইকে অতিক্রম করুন এবং প্রতিটি নোডের জন্য গণনা দ্বারা নির্দেশিত অ্যারে এন্ট্রিতে সম্পর্কিত স্ট্রিং যুক্ত করুন। -O(n), যেহেতু স্ট্রিংয়ের মোট দৈর্ঘ্য দ্বারা আবদ্ধ n
  4. অ্যারিকে অবতরণ ক্রমে অতিক্রম করুন এবং পছন্দসই স্ট্রিংয়ের আউটপুট দিন। -O(n)যেহেতু এটি অ্যারের আকার এবং ডেটার পরিমাণ উভয়েরই সীমাবদ্ধ।

আপনি সম্ভবত প্রথম পর্যায়ে অন্যান্য ডেটা স্ট্রাকচার দ্বারা ট্রিকে প্রতিস্থাপন করতে পারেন।


+1, যদিও আমি এ সম্পর্কে নিশ্চিত নই। ফিরে আসার শব্দের সংখ্যা এন, অক্ষরের সংখ্যা দ্বারা আবদ্ধ হওয়ায় এটি ও (এন), তবে প্রশ্নটি কি এটি জিজ্ঞাসা করে? বা প্রত্যাশিত শব্দের সংখ্যার চেয়ে আলাদা কোনও ফলাফল?
নিকস এম।

@NikosM। এটা তোলে হয় ;nপ্রত্যাশিত শব্দের সংখ্যার উপর একটি সাধারণ সবচেয়ে খারাপ-উচ্চতর আবদ্ধ, অনুমানের প্রয়োজন হয় না।
রাফেল

@ রাফেল, ইয়েপ সঠিক আমি এই বিষয়ে ভাবছি যেহেতু এটি একটি সাক্ষাত্কারে জিজ্ঞাসা করা হয়েছিল, প্রশ্নে সম্ভাব্য কৌশলগুলি ..
নিকস এম।

আমি ভাবছি যে কোনও স্পেস দক্ষ রৈখিক সময় অ্যালগরিদম আছে কিনা।
সাদাতাম

3
@ সাডতমে, হ্যাঁ, এটি একটি আকর্ষণীয় প্রশ্ন। আলাদা প্রশ্ন হিসাবে আলাদাভাবে পোস্ট করার উপযুক্ত হতে পারে। এটি কেবল স্থান দক্ষতা নয়; ত্রি সমাধানটি পয়েন্টার-ইনটেনসিভও রয়েছে, যা এটি অনুশীলনে ধীর করে দিতে পারে (মেমরির শ্রেণিবদ্ধতা কীভাবে বাস্তব মেশিনে কাজ করে তা দেওয়া হয়)। "দক্ষতা" সবচেয়ে খারাপ ক্ষেত্রে চলমান সময় থেকে পৃথক। এটি পরিষ্কারের জন্য অস্বাভাবিক কিছু নয়O(nlgn) পয়েন্টার-ইনটেনসিভকে বীট করতে সময় অ্যালগরিদম O(n)সময় অ্যালগরিদম, সুতরাং এই প্রশ্নটি ইতিমধ্যে কিছু সম্ভাব্য অ্যালগোরিদমকে প্রত্যাখ্যান করে বলে মনে হচ্ছে যা অনুশীলনে আরও ভাল পছন্দ হতে পারে।
ডিডাব্লিউ

3

উপস্থিতি গণনাগুলি ও (এন), সুতরাং কৌশলটি কেবলমাত্র শীর্ষ কে উপস্থিতি গণনাগুলি খুঁজে পাচ্ছে।

শীর্ষস্থানীয় কে মানগুলিকে একত্রিত করার একটি গাদা একটি সাধারণ উপায়, যদিও অন্যান্য পদ্ধতি ব্যবহার করা যেতে পারে ( https://en.wikedia.org/wiki/Partial_sorting দেখুন )।

ধরে নিচ্ছি কে উপরেরটি দ্বিতীয় পরম, এবং এটি যে সমস্যা বিবৃতিতে ধ্রুবক রয়েছে (এটি প্রদর্শিত হচ্ছে):

  1. প্রতিটি নোডে সংখ্যার সংখ্যার সাথে শব্দের একটি ত্রি তৈরি করুন।
  2. আকারের একটি গাদা শুরু করুন।
  3. শীর্ষ-কে গাদাতে ট্রাই এবং মিনি-প্রোব / প্রতিটি (পাত, ঘটনা-গণনা) জোড়া সন্নিবেশ করুন।
  4. উপরের কে পাতা এবং গুনগুলি আউটপুট করুন (এটি আসলে এক ধরণের ব্যথা কারণ আপনার প্রতিটি পাতাকে একটি শব্দের সাথে মানচিত্রের জন্য প্যারেন্ট পয়েন্টার প্রয়োজন)।

যেহেতু গাদা আকারটি একটি ধ্রুবক, হিপ অপারেশনগুলি হ'ল (1), সুতরাং পদক্ষেপ 3 হ'ল (এন)।

ট্রাই নির্মাণের সময় গাদাটিও গতিময়ভাবে বজায় রাখা যেতে পারে।


2

আপনার অ্যালগরিদম এমনকি সময় চলতে পারে না O(nlogn); সন্নিবেশΘ(n) হ্যাশটেবলের জিনিসগুলির জন্য সময় ব্যয় হয় Ω(n2) ইতিমধ্যে (সবচেয়ে খারাপ ক্ষেত্রে)


এরপরে যা ভুল তা ভুল ; আমি আপাতত চিত্রণমূলক উদ্দেশ্যে এখানে এটি রেখে চলেছি।

নিম্নলিখিত অ্যালগরিদম সবচেয়ে খারাপ ক্ষেত্রে চলে O(n) (একটি বর্ণমালা ধরে Σ ধ্রুব আকারের), n পাঠ্যের অক্ষরের সংখ্যা।

  1. পাঠ্যের একটি প্রত্যয় গাছ তৈরি করুন, যেমন ইউকোনেনের অ্যালগরিদম সহ

    যদি নির্মাণ ইতিমধ্যে এটি না করে তবে প্রতিটি (অভ্যন্তরীণ) নোডে পৌঁছনীয় পাতার সংখ্যা যুক্ত করুন।

  2. গাছটিকে মূল থেকে আড়াআড়ি করুন এবং প্রথম (সাদা) জায়গায় সমস্ত শাখা কেটে দিন।

  3. গাছটি অতিক্রম করুন এবং প্রতিটি নোডের বাচ্চাদের তালিকা তাদের পাতার গণনা অনুসারে বাছাই করুন।

  4. গাছের ফলন (বাম থেকে ডানে পাতাগুলি) এখন ফ্রিকোয়েন্সি অনুসারে বাছাই করা সমস্ত শব্দের একটি তালিকা।

রানটাইম সম্পর্কিত:

  1. উকোনেনের অ্যালগরিদম (তার বর্ধিত আকারে) সময়ে চলে O(n); পাতার সংখ্যা বজায় রাখা বৃদ্ধি করে নাΘঅ্যালগরিদমের কস্ট।
  2. পাঠ্যে ঘটে যাওয়া প্রতিটি শব্দের চরিত্রের জন্য আমাদের একটি নোডকে অতিক্রম করতে হবে। যেহেতু সর্বাধিক আছেn বিভিন্ন শব্দ-চরিত্রের জুটি, আমরা সর্বাধিক পরিদর্শন করি n নোড।
  3. আমরা সর্বাধিক পরিদর্শন করি n নোড (সিএফ ২) এবং সময় ব্যয় করে O(|Σ|log|Σ|)=O(1) প্রতি নোড
  4. আমরা ফলন পেতে পারি (যার অবশ্যই আকার থাকে) O(n)) সময়ে একটি সাধারণ traversal দ্বারা O(n) (সিএফ ২)।

বিভিন্ন শব্দের সংখ্যার সাথে পলমেট্রিসিং রানটাইম দ্বারা আরও সুনির্দিষ্ট সীমা পাওয়া যেতে পারে; যদি কয়েকটি থাকে তবে গাছটি 2 এর পরে ছোট হয়।


অ্যালগরিদম ভুল (এটি বাছাই করে না)। আমি আর নিশ্চিত নই যে লিনিয়ার সময় এমনকি সম্ভব।
রাফেল

1

HashMapসমস্ত শব্দ এবং তাদের ফ্রিকোয়েন্সি সংগ্রহ করতে একটি হ্যাশ টেবিল (যেমন, ) ব্যবহার করুন । তারপরে, ক্রমবর্ধমান ফ্রিকোয়েন্সি অনুসারে শব্দগুলি বাছাই করতে গণনা সাজান ব্যবহার করুন । যেহেতু সমস্ত ফ্রিকোয়েন্সিগুলি পরিসীমাতে পূর্ণসংখ্যা হয়1..nগণনা সাজানোর সময় লাগে O(n)সময়। মোট প্রত্যাশিত চলমান সময়টিO(n), যা সম্ভবত সমস্ত ব্যবহারিক উদ্দেশ্যে যথেষ্ট পরিমাণের চেয়ে বেশি (যদি না ইন্টারভিউকারী আপনার প্রশ্নের বাইরে থাকা কোনও বিষয় উল্লেখ না করে)। এটি উল্লেখ করে নিশ্চিত করুন যে এটি সবচেয়ে খারাপ ক্ষেত্রে চলমান সময়ের চেয়ে চলমান সময় প্রত্যাশিত

এটি কোনও উত্তর কোনও অ্যালগোরিদম ক্লাসে খুঁজবে এমন উত্তর হতে পারে না, কারণ এটি প্রত্যাশিত O(n) বরং চলমান সময় O(n)সবচেয়ে খারাপ সময় চলমান। যদি আপনি সাক্ষাত্কারের প্রশ্নে অতিরিক্ত পয়েন্ট অর্জন করতে চান, তবে আপনি অফ-হ্যান্ড পদ্ধতিতে আনুষাঙ্গিকভাবে উল্লেখ করতে পারেন যে অবশ্যই এটি চলমান সময় আশা করে, তবে এটিও করা যেতে পারেO(n) সবচেয়ে খারাপ ক্ষেত্রে চলমান সময়টিকে হ্যাশ টেবিলটি আরও পরিশীলিত ডেটা কাঠামোর সাথে প্রতিস্থাপন করে - এবং আপনি কীভাবে এই পরিস্থিতিতে একটি অ্যালগরিদমের মধ্যে নির্বাচন করতে চান তা বিশদ বিবরণে খুশি হবেন।

অথবা, আপনি যদি এটি কিছুটা নিরাপদে খেলতে চান তবে উত্তর দেওয়ার আগে প্রথমে জিজ্ঞাসা করুন "আপনি কি প্রত্যাশার মধ্যে পার্থক্য সম্পর্কে যত্নশীল? O(n) চলমান সময় এবং সবচেয়ে খারাপ ক্ষেত্রে O(n)চলমান সময়? "। তারপরে আপনার উত্তরটি সেই অনুসারে উপযুক্ত করুন practice সাক্ষাত্কারের জন্য আপনি অনুশীলনে কীভাবে বেছে নেবেন তা জিজ্ঞাসা করার জন্য প্রস্তুত থাকুন so (যদি তাই হয় তবে স্কোর! এটি এমন একটি প্রশ্ন যা আপনার বলপार्क থেকে বেরিয়ে আসতে সক্ষম হবেন))


সংরক্ষণ Θ(n) একটি হ্যাশটেবল জিনিস লাগে Ω(n2)ইতিমধ্যে সবচেয়ে খারাপ ক্ষেত্রে সময়।
রাফেল

আমি সাক্ষাত্কারকারীদের পক্ষে কথা বলতে পারি না, তবে আমি তাদের useালুতাটিকে আরও বেশি অজুহাত হিসাবে ব্যবহার করতে দ্বিধা বোধ করছি। এছাড়াও, এই সাইটটি বিজ্ঞানের বিষয়ে (যেমন আপনি নিজে উপরে উপরে মন্তব্য করেছেন), হাতের avingেউয়ের বিষয়ে নয় "প্রোগ্রামের কৌশলগুলি কীভাবে আমি আরও তাড়াতাড়ি বেতন পাব" about
রাফেল

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

0

হ্যাশটেবল ভিত্তিক সমাধান

হ্যাশটেবল জটিলতা তৈরি করে কেন তা নিশ্চিত নয় Ω(n2) যদি nহয় অক্ষরের সংখ্যা (না শব্দ)।

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

হ্যাশটেবলে সংঘর্ষগুলি অবশ্যই একটি সমস্যা এবং মূল হ্যাশট্যাবালটি কত বড় ছিল এবং হ্যাশিং অ্যালগরিদমটি কতটা ভাল তার উপর নির্ভর করে যে কেউ তার কাছাকাছি যেতে পারে O(1) সন্নিবেশ এবং গণনা রাখার জন্য এবং এইভাবে O(n)অ্যালগরিদমের জন্য, যদিও মেমরির ব্যয়ে। যাইহোক, আমি এখনও খারাপ পরিস্থিতি হিসাবে দৃ as় করা যেতে পারে যে প্রশংসা করতে পারেনO(n2) যদি n অক্ষরের সংখ্যা।

অনুমানটি হ'ল হ্যাশিং অ্যালগরিদম অক্ষরের সংখ্যার সাথে সম্পর্কিত সময়ে লিনিয়ার।

রেডিক্সের বাছাই ভিত্তিক সমাধান

বিকল্পভাবে, ইংরেজী ধরে নিয়ে, যেহেতু শব্দের দৈর্ঘ্য সুপরিচিত, আমি পরিবর্তে একটি গ্রিড তৈরি করব এবং মূলটি সাজানোর প্রয়োগ করব যা O(kN) কোথায় k ইংরেজি ভাষার কোনও শব্দের সর্বাধিক দৈর্ঘ্য হবে এবং Nশব্দগুলির মোট সংখ্যা। প্রদত্তn নথিতে অক্ষরের সংখ্যা এবং k এটি একটি ধ্রুবক, অসম্পূর্ণভাবে এই পরিমাণ O(n)

এখন প্রতিটি শব্দের ফ্রিকোয়েন্সি গণনা করুন। যেহেতু শব্দগুলি বাছাই করা হয়েছে, আমরা প্রতিটি শব্দটিকে তার আগের শব্দটির সাথে তুলনা করে দেখব যে এটি একই বা ভিন্ন কিনা। যদি এটি একই হয়, আমরা শব্দটি সরিয়ে ফেলি এবং পূর্বের সাথে একটি গণনা যুক্ত করি। যদি আলাদা হয় তবে কেবল 1 টি গণনা করুন এবং এগিয়ে যান। এটি প্রয়োজন2n তুলনা যেখানে n অক্ষর সংখ্যা, এবং এইভাবে O(n) সামগ্রিকভাবে জটিলতায়।

ইংরাজির শীর্ষ কয়েকটি দীর্ঘতম শব্দ হাস্যকরভাবে দীর্ঘ , তবে তারপরে কেউ যুক্তিসঙ্গত সংখ্যায় (যেমন 30 বা তার চেয়ে কম) শব্দের দৈর্ঘ্যটি ক্যাপ করতে পারে এবং এর সাথে আসা ত্রুটির মার্জিন গ্রহণ করে শব্দগুলি ছাঁটাই করতে পারে।


(1) যেহেতু বেশিরভাগ পাঠ্যে শব্দের সর্বাধিক দৈর্ঘ্য একটি ধ্রুবক দ্বারা আবদ্ধ থাকে, তাই শব্দের সংখ্যা Θ(n)যেমন. (২) হ্যাশ ফাংশনের উপর নির্ভর করে শব্দটি পড়ার সময় উড়তে হ্যাশ গণনা করা সম্ভব হবে না। (3) সবচেয়ে খারাপ ক্ষেত্রে, সমস্ত শব্দ হ্যাশ সারণিতে একই স্থানে ,োকানো এবং অনুসন্ধান করাΘ(n)
ফ্র্যাঙ্কডব্লিউ

হাই ফ্র্যাঙ্কডব্লিউ (২) আমি উল্লেখ করছি যে আমরা ফ্লাইতে গণনা করতে পারি এমন ফাংশন (অর্থাত্ একটি রোলিং হ্যাশ) বেছে নিতে পারি। তা না হলেও সামগ্রিক জটিলতা ততক্ষণ পরিবর্তিত হয় না যতক্ষণ না হ্যাশিং লিনিয়ার সময় হয়, কারণ পড়া এবং হ্যাশিং হবেO(n+n)অপারেশন। (3) অবশ্যই, তবে এটি আবার অ্যালগরিদমের পছন্দের উপর নির্ভর করে। অনেকগুলি অ্যালগরিদম রয়েছে যা শব্দগুলি পৃথক হলে যথেষ্ট পরিমাণে উন্নত হয়। একই শব্দের জন্য, আপনি কেবল একটি একক এন্ট্রিতে গণনা বাড়িয়েছেন। সাদৃশ্য হিসাবে, যখন আমাকে বাছাই অ্যালগরিদম বাছাই করতে হবে, সবচেয়ে খারাপ পরিস্থিতি হতে পারেO(n2)তবে আমি সাধারণত আরও বাছাই করি :-)
ওমর ইকবাল

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

কেন একটি হ্যাশ টেবিল বাড়ে O(n2)সবচেয়ে খারাপ জটিলতা? এটি কারণ নীতিগতভাবে হ্যাশটেবলের সবচেয়ে খারাপ সময় চলার সময়টি খুব খারাপ। অনুশীলনে এই নিকৃষ্টতম পরিস্থিতি প্রায়শই ঘটে বলে মনে হয় না (বিশেষত যদি আপনি হ্যাশ ফাংশনটি সঠিকভাবে বেছে নেন, এলোমেলোকরণ এবং অন্যান্য কৌশল সহ), এবং এটি এমনটি কেন ঘটছে তা প্রমাণ করার জন্য উপপাদাগুলিও প্রমাণ করতে পারে, তবে যদি এটি asympotic জটিলতা সম্পর্কে প্রশ্ন থাকে , এর মতো ব্যবহারিক বিবেচনাগুলি যুক্তিযুক্তভাবে উইন্ডোটির বাইরে চলে যায় (বা কমপক্ষে এটিই আপনি শুনতে পারেন।
DW

সাধারণ হ্যাশ টেবিল সন্নিবেশ করানো হয় O(n2)কারণ সংঘর্ষের জন্য আইটেমটি অন্য কোথাও রাখা দরকার। এখানে, আমাদের নকলগুলি sertোকানোর দরকার নেই। 1) একই শব্দ পুনরাবৃত্তি: তারপর গণনা আপ, এটি হতে গ্যারান্টিযুক্তO(1)প্লাস হ্যাশিং সময়। 2) বিভিন্ন শব্দ একই হ্যাশ: হ্যাশটি কতটা ভাল / খারাপ তা প্রশ্নটি টেবিলের আকারটি খুব ছোট। আমি একমতΩ(1)কিন্তু পছন্দ উপর নির্ভর করে আমি এটাও বলেছেন যে "এক পারে কাছে পাসেO(1) সন্নিবেশ এবং গণনা রক্ষার জন্য "। আমরা কী টেবিলের আকার এবং ফাংশন (গুলি) আমাদের কাছে পেতে পারি তা নিয়ে আলোচনা করতে পারি O(1)
ওমর ইকবাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.