অনুসন্ধানের সাথে ডেটা স্ট্রাকচার, orোকানো এবং মোড়ের সময় মুছে ফেলুন ?


25

অর্ডারযুক্ত তালিকা বজায় রাখতে কোনও ডেটা কাঠামো রয়েছে যা মোড়িত সময়ে নিম্নলিখিত ক্রিয়াকলাপগুলিকে সমর্থন করে ?O(1)

  • গেটএলিমেন্ট (কে) : তালিকার ম উপাদানটি ফিরিয়ে দিনk

  • InsertAfter (x, y) : এক্স এর পরপরই তালিকায় নতুন উপাদান y প্রবেশ করান।

  • মুছুন (এক্স) : তালিকা থেকে এক্স সরান।

শেষ দুটি ক্রিয়াকলাপের জন্য, আপনি ধরে নিতে পারেন যে এক্সটিকে সরাসরি তথ্য কাঠামোর মধ্যে একটি পয়েন্টার হিসাবে দেওয়া হয়; InsertElement y এর জন্য সংশ্লিষ্ট পয়েন্টারটি প্রদান করে। InsertAfter (NULL, y) তালিকার শুরুতে y প্রবেশ করান।

উদাহরণস্বরূপ, একটি খালি ডেটা কাঠামো দিয়ে শুরু করে, নিম্নলিখিত ক্রিয়াকলাপগুলি নীচের মত প্রদর্শিত অর্ডার তালিকা আপডেট করে:

  • InsertAfter (NULL, a) lies [এ]
  • InsertAfter (NULL, b) lies [b, a]
  • InsertAfter (b, c) [b, c, a]
  • InsertAfter (a, d) [b, c, a, d]
  • মুছে ফেলুন (গ) [B, A, D]

এই পাঁচটি আপডেটের পরে, getElement (2) এর d ফিরে আসা উচিত এবং গেটলেমেন্ট (3) এর ত্রুটি ফিরে পাওয়া উচিত।


2
ইন তালিকা ইন্ডেক্সিং জন্য সর্বাপেক্ষা কাম্য আলগোরিদিম ও উপসেট মান (1989) আমি একটি পাওয়া এই সমস্যার সমাধান। Ω(log nlog log n)
যেমন AT

2
@ রাফেল: আমি মনে করি যে সে উপাদানটির অর্থ হ'ল যদি ডেটা স্ট্রাকচারটি অ্যারে হত। অ্যারেগুলি প্রথম অপারেশনটিকে সময়ে সমর্থন করে তবে দ্বিতীয়টি নয়; লিঙ্কযুক্ত তালিকাগুলি সময়ে দ্বিতীয় ক্রিয়াকলাপটিকে সমর্থন করে তবে প্রথম নয়। A[k]O(1)O(1)
জেফই

2
এছাড়াও, ভারসাম্যযুক্ত বাইনারি গাছগুলি সময়ে উভয় ক্রিয়াকলাপ সমর্থন করে । O(logn)
জেফই

1
@ রাফেল: স্পষ্ট করার জন্য সম্পাদিত।
জেফই

2
@ জেফি গতিশীল অ্যারে প্রথম দুটি মোড়িত সময়ের ( cs.uwaterloo.ca/research/tr/1999/09/CS-99-09.pdf ) সমর্থন করেO(1)
ডিয়েগো

উত্তর:


33

কোন।

ফ্রেডম্যান এবং সাকস প্রমাণ করেছেন যে এই সমস্ত অপারেশনগুলিকে সমর্থন করে এমন কোনও ডেটা স্ট্রাকচারের জন্য অপারেশন প্রতি কমপক্ষে মোড়ের সময় প্রয়োজন । নিম্ন মুখী (এই যে আপনি আপনার প্রথম মন্তব্যে উল্লেখ Dietz দ্বারা রেফারেন্স [1] কাগজ রয়েছে।) এ ঝুলিতে খুব গুনতি শক্তিশালী সেল প্রোবের মডেল, যা শুধুমাত্র আপডেট এবং কোয়েরি দ্বারা ব্যবহার স্বতন্ত্র মেমরি অ্যাড্রেস সংখ্যা বিবেচনা করে আলগোরিদিম।Ω(logn/loglogn)

আপডেট এবং ক্যোয়ারী ক্রিয়াকলাপ সম্পর্কে কিছু অতিরিক্ত অনুমান ব্যতিরেকে ডায়েটের ডেটা স্ট্রাকচার সবচেয়ে ভাল সম্ভব (কমপক্ষে ধ্রুবক উপাদানগুলির মধ্যে)।


3
@AT: এই সীমাটি কখনই "ভুল প্রমাণিত হয়নি"। এমন পরিস্থিতি রয়েছে যেখানে এটি প্রয়োগ হয় না, তবে এটি সম্পূর্ণ ভিন্ন বক্তব্য!
রাফায়েল

5
@AT: বাছাই করা নিম্ন সীমাটি গণনার অনেক দুর্বল মডেল, বাইনারি সিদ্ধান্ত গাছগুলিতে প্রমাণিত হয়েছিল। বাইনারি সিদ্ধান্ত গাছ হিসাবে বর্ণনা করা যায় না এমন দ্রুত অ্যালগরিদম বিকাশ করে আবদ্ধটি "ভুল প্রমাণিত" হয়েছিল । ফ্রেডম্যান এবং সাকসের লোয়ার বাউন্ড ভুল প্রমাণ করতে আপনাকে একটি দ্রুত অ্যালগরিদম ডিজাইন করতে হবে যা মেমরিতে অ্যাক্সেস করে না । ভাগ্য সুপ্রসন্ন হোক.
জেফই

@ জেফি এবং রাফেল; দয়া করে আমার অন্য উত্তরটি পর্যালোচনা করুন এবং আপনি সুযোগ পেলে আমার ফলাফলটি নিশ্চিত / অস্বীকার করুন। ধন্যবাদ।
যেমন AT

6

ক্রোনোগ্রাম প্রযুক্তি থেকে বিশ্লেষণটি সংশোধন করে বাধা অতিক্রম করেছে বলে মনে হচ্ছে।Ω(lognloglogn)

নতুন [নিম্ন] সীমা-পরীক্ষার মডেল [1] তে অনুরূপ সমস্যার জন্য প্রমাণিত হয়েছে। সেই নিবন্ধটি পড়া থেকে; এটি আমার বোঝার বিষয়বস্তু তালিকা উপস্থাপনের সমস্যার ক্ষেত্রেও প্রযোজ্য ।Ω(logn)


[1] প্যাট্রাস্কু, মিহাই এবং এরিক ডি ডামাইন। "সেল-প্রোব মডেলটিতে লোগারিদমিক লোয়ার সীমানা” "সিয়াম জে.কম্পুট। 35, না। 4 (এপ্রিল 2006): 932–963। ডোই: 10,1137 / S0097539705447256।


1
এই নিম্ন সীমাটি ধ্রুব আকারের শব্দের জন্য ধারণ করে, পূর্ববর্তী নিম্ন সীমা লোগারিথমিক আকারের শব্দের জন্য। Ω(logn/loglogn)
যুবাল ফিল্মাস

প্রকৃতপক্ষে. এছাড়াও, আপনি কি নিশ্চিত করতে পারেন যে এই ধাপটি ধ্রুব আকারের শব্দের সাথে তালিকার উপস্থাপন সমস্যার ক্ষেত্রে প্রযোজ্য ?

1
আমি নিশ্চিত করতে পারি যে, ডায়েটস আবদ্ধ হওয়ার কারণে ( hdl.handle.net/1802/5694 ) আপনি নিজেরাই উল্লেখ করেছেন। এই জটিলতা ঠিক তোলে , সেইজন্য এবং নাΩ ( লগ এন )Θ(logn/loglogn) Ω(logn)
jbapple
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.