1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:01,900 [সঙ্গীত বাজাচ্ছি] 3 00:00:01,900 --> 00:00:05,710 4 00:00:05,710 --> 00:00:09,150 >> ডগ লয়েড: এখন আপনি অ্যারে সম্পর্কে অনেক জানি, 5 00:00:09,150 --> 00:00:11,610 এবং আপনি সংযুক্ত তালিকা সম্পর্কে অনেক জানেন. 6 00:00:11,610 --> 00:00:13,650 আর আমরা আলোচনা করেছি আগপাছ, আমরা করেছি 7 00:00:13,650 --> 00:00:16,620 তালিকা লিঙ্ক যে আলোচনা বড় এবং ছোট পেতে পারেন, 8 00:00:16,620 --> 00:00:18,630 কিন্তু তারা আরো আকার গ্রহণ করা. 9 00:00:18,630 --> 00:00:22,359 অ্যারে অনেক বেশি সহজবোধ্য করতে হয় ব্যবহার, কিন্তু তারা যতটা এ নিয়ন্ত্রণমূলক আছেন 10 00:00:22,359 --> 00:00:24,900 আমরা মাপ সেট করা আছে হিসাবে খুব শুরুতে অ্যারের 11 00:00:24,900 --> 00:00:26,910 এবং তারপর আমরা এটা দিয়ে আটকে করছি. 12 00:00:26,910 --> 00:00:30,470 >> কিন্তু যে আমরা প্রায় কাছাকাছি করেছি, এর আমাদের বিষয় সব ক্লান্ত 13 00:00:30,470 --> 00:00:33,040 লিঙ্ক তালিকা এবং অ্যারে সম্পর্কে. 14 00:00:33,040 --> 00:00:34,950 অথবা আমরা আছে? 15 00:00:34,950 --> 00:00:37,720 হয়তো আমরা কিছু করতে পারি এমনকি আরো সৃজনশীল. 16 00:00:37,720 --> 00:00:40,950 আর ধার দেয় যে সাজানোর একটি হ্যাশ টেবিল ধারণা. 17 00:00:40,950 --> 00:00:46,680 >> সুতরাং একটি হ্যাশ টেবিল আমরা চেষ্টা করে যাচ্ছেন একটি লিঙ্ক তালিকা একটি অ্যারের মেশা. 18 00:00:46,680 --> 00:00:49,520 আমরা সুবিধাও নিতে যাচ্ছেন অ্যারের, র্যান্ডম এক্সেস মত, 19 00:00:49,520 --> 00:00:53,510 শুধু অ্যারে যেতে সক্ষম হচ্ছে উপাদান 4 বা অ্যারে উপাদান 8 20 00:00:53,510 --> 00:00:55,560 জুড়ে বারবার করেও. 21 00:00:55,560 --> 00:00:57,260 একেবারে ঠিক, বেশ দ্রুত? 22 00:00:57,260 --> 00:01:00,714 >> কিন্তু আমরা আমাদের তথ্য আছে চান কাঠামো সম্প্রসারণ ও সঙ্কোচন পাবে. 23 00:01:00,714 --> 00:01:02,630 আমরা না, প্রয়োজন হবে না সীমিত করা চাই. 24 00:01:02,630 --> 00:01:04,588 আর আমরা সক্ষম হতে চান যোগ এবং কিছু মুছে ফেলার জন্য 25 00:01:04,588 --> 00:01:08,430 খুব সহজেই, যা আপনার যদি মনে থাকে, একটি অ্যারের সাথে খুবই জটিল. 26 00:01:08,430 --> 00:01:11,650 আর আমরা এই কল করতে পারেন নতুন জিনিস একটি হ্যাশ টেবিল. 27 00:01:11,650 --> 00:01:15,190 >> আর যদি সঠিকভাবে বাস্তবায়িত আমরা ধরণের গ্রহণ করছেন 28 00:01:15,190 --> 00:01:18,150 উভয় তথ্য সুবিধার আপনি ইতিমধ্যে দেখা করেছি কাঠামো, 29 00:01:18,150 --> 00:01:19,880 অ্যারে এবং সংযুক্ত তালিকা. 30 00:01:19,880 --> 00:01:23,070 সন্নিবেশ করা শুরু করতে পারেন 1 থেটা দিকে ঝোঁক. 31 00:01:23,070 --> 00:01:26,207 থীটা আমরা সত্যিই আলোচনা করেন নি, কিন্তু থেটা শুধু গড় ক্ষেত্রে হয়, 32 00:01:26,207 --> 00:01:27,540 কি আসলে ঘটতে যাচ্ছে. 33 00:01:27,540 --> 00:01:29,680 আপনি সবসময় যাচ্ছেন না লক দৃশ্যকল্প আছে, 34 00:01:29,680 --> 00:01:32,555 এবং আপনি সবসময় আছে যাচ্ছেন না শ্রেষ্ঠ কেস দৃশ্যকল্প, তাই কি 35 00:01:32,555 --> 00:01:33,900 গড় দৃশ্যকল্প? 36 00:01:33,900 --> 00:01:36,500 >> ওয়েল গড়ে সন্নিবেশ একটি হ্যাশ টেবিল মধ্যে 37 00:01:36,500 --> 00:01:39,370 বন্ধ ধ্রুব সময় পেতে শুরু করতে পারেন. 38 00:01:39,370 --> 00:01:41,570 এবং মুছে ফেলার পেতে পারেন ধ্রুব সময় বন্ধ. 39 00:01:41,570 --> 00:01:44,440 এবং লুকআপ পেতে পারেন ধ্রুব সময় বন্ধ. 40 00:01:44,440 --> 00:01:48,600 অদূর ভবিষ্যতে আমরা একটি তথ্য আছে না কাঠামো এখনো যে তা করতে পারে, 41 00:01:48,600 --> 00:01:51,180 এবং তাই এটি ইতিমধ্যে শোনাচ্ছে একটি বেশ বড় জিনিস ভালো. 42 00:01:51,180 --> 00:01:57,010 আমরা সত্যিই নির্বাপিত করেছি তার নিজের প্রতিটি অসুবিধা. 43 00:01:57,010 --> 00:01:59,160 >> এই পারফরম্যান্স পেতে যদিও আমরা আপগ্রেড 44 00:01:59,160 --> 00:02:03,580 আমরা যোগ কিভাবে পুনর্বিবেচনা করতে হবে গঠন মধ্যে তথ্য. 45 00:02:03,580 --> 00:02:07,380 বিশেষভাবে আমরা চাই তথ্য নিজেই আমাদের জানাতে 46 00:02:07,380 --> 00:02:09,725 যেখানে এটা কাঠামো যেতে হবে. 47 00:02:09,725 --> 00:02:12,850 আর আমরা তখন তা যদি দেখতে প্রয়োজন হলে কাঠামো, আমরা তা খুঁজে পাওয়া প্রয়োজন হলে, 48 00:02:12,850 --> 00:02:16,610 আমরা তথ্য তাকান করতে চান আবার ও কার্যকরভাবে পাবে, 49 00:02:16,610 --> 00:02:18,910 তথ্য ব্যবহার করে, এলোমেলোভাবে এটি অ্যাক্সেস. 50 00:02:18,910 --> 00:02:20,700 শুধু এ খুঁজছেন দ্বারা তথ্য আমরা থাকতে হবে 51 00:02:20,700 --> 00:02:25,890 ঠিক আমরা যেখানে একটি ধারণা হ্যাশ টেবিল এটি খুঁজে পাওয়া যাচ্ছে. 52 00:02:25,890 --> 00:02:28,770 >> একটি হ্যাশ এখন downside হয় টেবিল সত্যিই তারা যে হয় 53 00:02:28,770 --> 00:02:31,770 ক্রম বা তথ্য বাছাই এ বেশ খারাপ. 54 00:02:31,770 --> 00:02:34,970 এবং সত্য, আপনি যদি নতুন অর্ডার বা সাজানোর তাদের ব্যবহার করতে 55 00:02:34,970 --> 00:02:37,990 তথ্য আপনি সব হারান সুবিধার পূর্বে আপনি 56 00:02:37,990 --> 00:02:40,710 সন্নিবেশ এবং মুছে ফেলার পরিপ্রেক্ষিতে ছিল. 57 00:02:40,710 --> 00:02:44,060 সময় কাছাকাছি হয়ে এন থেটা, এবং আমরা মূলত করেছি 58 00:02:44,060 --> 00:02:45,530 একটি লিঙ্ক তালিকা মধ্যে regressed. 59 00:02:45,530 --> 00:02:48,850 আর তাই আমরা শুধুমাত্র হ্যাশ ব্যবহার করতে চান টেবিল আমরা যত্নশীল না হলে 60 00:02:48,850 --> 00:02:51,490 তথ্য সাজানো হয় কিনা. 61 00:02:51,490 --> 00:02:54,290 কনটেক্সট যা আপনি CS50 মধ্যে তাদের ব্যবহার করব 62 00:02:54,290 --> 00:02:58,900 আপনি সম্ভবত না যত্ন তথ্য সাজানো হয় যে. 63 00:02:58,900 --> 00:03:03,170 >> সুতরাং একটি হ্যাশ টেবিল সংমিশ্রণ দুই স্বতন্ত্র টুকরা 64 00:03:03,170 --> 00:03:04,980 যা দিয়ে আমরা পরিচিত. 65 00:03:04,980 --> 00:03:07,930 প্রথমে একটি ফাংশন, যা আমরা সাধারণত একটি হ্যাশ ফাংশন কল. 66 00:03:07,930 --> 00:03:11,760 আর যে হ্যাশ ফাংশন যাচ্ছে কিছু অঋণাত্মক পূর্ণসংখ্যা ফিরে যা 67 00:03:11,760 --> 00:03:14,870 আমরা সাধারণত ঠিক আছে, একটি হ্যাশকোড কল? 68 00:03:14,870 --> 00:03:20,230 দ্বিতীয় খণ্ড, যা একটি অ্যারের, হয় টাইপ আমরা স্টোরিং তথ্য সক্ষম 69 00:03:20,230 --> 00:03:22,190 ডাটা স্ট্রাকচার স্থাপন করতে চান. 70 00:03:22,190 --> 00:03:24,310 আমরা বন্ধ রাখা হবে এখন জন্য তালিকা উপাদান লিঙ্ক 71 00:03:24,310 --> 00:03:27,810 এবং মাত্র একটি বেসিক দিয়ে শুরু এটি প্রায় আপনার মাথা পেতে হ্যাশ টেবিল, 72 00:03:27,810 --> 00:03:30,210 এবং তারপর আমরা হয়তো গাট্টা করব আপনার মনের একটি সামান্য বিট যখন আমরা 73 00:03:30,210 --> 00:03:32,920 একসঙ্গে অ্যারে এবং লিঙ্কটি তালিকা একত্রিত. 74 00:03:32,920 --> 00:03:35,590 >> মৌলিক ধারণা, যদিও আমরা কিছু তথ্য নেওয়া হয়. 75 00:03:35,590 --> 00:03:37,860 আমরা যে তথ্য মাধ্যমে চালানো হ্যাশ ফাংশন. 76 00:03:37,860 --> 00:03:41,980 তাই তথ্য প্রক্রিয়াকরণ করা হয় এবং এটা ঠিক আছে, একটি সংখ্যা খুঁজে spits? 77 00:03:41,980 --> 00:03:44,890 এবং তারপর যে নম্বর দিয়ে আমরা শুধু তথ্য সংরক্ষণ 78 00:03:44,890 --> 00:03:48,930 আমরা সঞ্চয় করতে চান যে অবস্থানে অ্যারে. 79 00:03:48,930 --> 00:03:53,990 সুতরাং উদাহরণস্বরূপ আমরা হয়তো আছে স্ট্রিং এই হ্যাশ টেবিল. 80 00:03:53,990 --> 00:03:57,350 এটা তাই, এটা 10 উপাদানের পেয়েছিলাম আমরা এটা 10 স্ট্রিং ফিট করতে পারে. 81 00:03:57,350 --> 00:03:59,320 >> আসুন আমরা জন হ্যাশ চান বলে. 82 00:03:59,320 --> 00:04:02,979 জন সুতরাং তথ্য হিসাবে আমরা সন্নিবেশ করতে চান কোথাও এই হ্যাশ টেবিল মধ্যে. 83 00:04:02,979 --> 00:04:03,770 কোথায় আমরা এটা করা হয়? 84 00:04:03,770 --> 00:04:05,728 ওয়েল সাধারণত সঙ্গে একটি অ্যারে পর্যন্ত আমরা সম্ভবত 85 00:04:05,728 --> 00:04:07,610 অ্যারে পাঁচ 0 এটি করা হবে. 86 00:04:07,610 --> 00:04:09,960 কিন্তু এখন আমরা এই নতুন হ্যাশ ফাংশন আছে. 87 00:04:09,960 --> 00:04:13,180 >> আর আসুন আমরা জন চালানোর যে বলা যাক এই হ্যাশ ফাংশন মাধ্যমে 88 00:04:13,180 --> 00:04:15,417 এবং এটা 4 খুঁজে spits হচ্ছে. 89 00:04:15,417 --> 00:04:17,500 আমরা যেখানে ওয়েল দ্যাট জন লাগাতে চান যাচ্ছে. 90 00:04:17,500 --> 00:04:22,050 আমরা অ্যারে অবস্থানে জন লাগাতে চান 4, আমরা again-- জন হ্যাশ যদি কারণ 91 00:04:22,050 --> 00:04:23,810 এর পরে আমরা বলতে দিন অনুসন্ধান ও দেখতে চাই 92 00:04:23,810 --> 00:04:26,960 জন এই হ্যাশ উপস্থিত থাকলে আমরা যা করতে হবে সব টেবিলের 93 00:04:26,960 --> 00:04:30,310 একই হ্যাশ মাধ্যমে এটি চালানো হয় ফাংশন, সংখ্যা 4 নামা 94 00:04:30,310 --> 00:04:33,929 এবং জন এটি পাবে অবিলম্বে আমাদের তথ্য কাঠামো. 95 00:04:33,929 --> 00:04:34,720 যে বেশ ভাল. 96 00:04:34,720 --> 00:04:36,928 >> আসুন আমরা এখন এই কাজ করা যাক বলতে আবার, আমরা পল হ্যাশ চান. 97 00:04:36,928 --> 00:04:39,446 আমরা পল যোগ করতে চান এই হ্যাশ টেবিল মধ্যে. 98 00:04:39,446 --> 00:04:42,070 এই সময় আমরা চালানো বলে চলুন শুরু করা যাক হ্যাশ ফাংশন মাধ্যমে পল, 99 00:04:42,070 --> 00:04:44,600 উৎপন্ন হয় যে হ্যাশকোড 6. 100 00:04:44,600 --> 00:04:47,340 অবশ্য, এখন আমরা পল লাগাতে পারেন অ্যারে পাঁচ 6. 101 00:04:47,340 --> 00:04:50,040 আর আমরা কিনা সন্ধান করার প্রয়োজন হলে পল এই হ্যাশ টেবিল হয়, 102 00:04:50,040 --> 00:04:53,900 আমরা যা করতে হবে সব পল চালানো হয় হ্যাশ ফাংশন মাধ্যমে আবার 103 00:04:53,900 --> 00:04:55,830 এবং আমরা আবার 6 পেতে যাচ্ছেন. 104 00:04:55,830 --> 00:04:57,590 >> এবং তারপর আমরা শুধু চেহারা অ্যারে পাঁচ 6 এ. 105 00:04:57,590 --> 00:04:58,910 পল আছে কি? 106 00:04:58,910 --> 00:05:00,160 যদি তাই হয়, তিনি হ্যাশ টেবিল আছে. 107 00:05:00,160 --> 00:05:01,875 পল নয় কি? 108 00:05:01,875 --> 00:05:03,000 তিনি হ্যাশ টেবিল না. 109 00:05:03,000 --> 00:05:05,720 এটা বেশ সহজবোধ্য. 110 00:05:05,720 --> 00:05:07,770 >> এখন আপনি কিভাবে একটি হ্যাশ ফাংশন নির্ধারণ না? 111 00:05:07,770 --> 00:05:11,460 ওয়েল সত্যিই কোন সীমা আছে সম্ভব হ্যাশ ফাংশন সংখ্যা. 112 00:05:11,460 --> 00:05:14,350 আসলে একটি নম্বর, সত্যিই আছে ইন্টারনেটে সত্যিই ভাল বেশী. 113 00:05:14,350 --> 00:05:17,560 একটি সংখ্যা, সত্যিই আছে ইন্টারনেটে সত্যিই খারাপ বেশী. 114 00:05:17,560 --> 00:05:21,080 এটি বেশ সহজ একটা বাজে জিনিস লিখতে. 115 00:05:21,080 --> 00:05:23,760 >> তাই কি একটি ভাল তোলে আপ হ্যাশ ফাংশন, ডান? 116 00:05:23,760 --> 00:05:27,280 ভাল একটি ভাল হ্যাশ ফাংশন উচিত শুধুমাত্র তথ্য কুচি হচ্ছে ব্যবহার, 117 00:05:27,280 --> 00:05:29,420 এবং তথ্য সব কুচি হচ্ছে. 118 00:05:29,420 --> 00:05:32,500 সুতরাং আমরা anything-- ব্যবহার করতে চান না আমরা কিছু একত্রীভূত করে না 119 00:05:32,500 --> 00:05:35,560 তথ্য ছাড়া অন্য. 120 00:05:35,560 --> 00:05:37,080 এবং আমরা তথ্য সব ব্যবহার করতে চান. 121 00:05:37,080 --> 00:05:39,830 আমরা শুধু একটি স্থানের ব্যবহার করতে চান না এটা নিয়ে আমরা এটা সব ব্যবহার করতে চান. 122 00:05:39,830 --> 00:05:41,710 একটি হ্যাশ ফাংশন উচিত এছাড়াও নিয়ন্ত্রণবাদী হতে. 123 00:05:41,710 --> 00:05:42,550 ওটার মানে কি? 124 00:05:42,550 --> 00:05:46,200 আচ্ছা এটা মানে যে প্রতিটি সময় আমরা তথ্য সঠিক একই টুকরা পাস 125 00:05:46,200 --> 00:05:50,040 হ্যাশ ফাংশন মধ্যে আমরা সবসময় একই হ্যাশকোড নামা. 126 00:05:50,040 --> 00:05:52,870 আমি শুধুমাত্র জন পাস হলে হ্যাশ ফাংশন আমি 4 নামা. 127 00:05:52,870 --> 00:05:56,110 আমি যে কাজ করতে সক্ষম হওয়া উচিত 10,000 বার ও আমি সবসময় 4 কিনবো. 128 00:05:56,110 --> 00:06:00,810 সুতরাং কোন র্যান্ডম সংখ্যার কার্যকরভাবে আমাদের হ্যাশ জড়িত করা যাবে tables-- 129 00:06:00,810 --> 00:06:02,750 আমাদের হ্যাশ ফাংশন. 130 00:06:02,750 --> 00:06:05,750 >> একটি হ্যাশ ফাংশন এছাড়াও উচিত অবিশেষে তথ্য বিতরণ. 131 00:06:05,750 --> 00:06:09,700 প্রত্যেক সময় আপনি মাধ্যমে তথ্য চালানোর প্রয়োজন হলে হ্যাশ ফাংশন আপনি, হ্যাশকোড 0 পেতে 132 00:06:09,700 --> 00:06:11,200 যে অধিকার, সম্ভবত তাই মহান না? 133 00:06:11,200 --> 00:06:14,600 আপনি সম্ভবত বড় করতে চান হ্যাশ কোড একটি পরিসীমা. 134 00:06:14,600 --> 00:06:17,190 এছাড়াও কিছু ছড়িয়ে যেতে পারে টেবিল জুড়ে আউট. 135 00:06:17,190 --> 00:06:23,210 আর এটা যদি সত্যিই মহান হতে হবে জন ও জনাথন মত একই তথ্য, 136 00:06:23,210 --> 00:06:26,320 হয়তো তৌল ছড়িয়ে পড়ে হ্যাশ টেবিল বিভিন্ন স্থানে. 137 00:06:26,320 --> 00:06:28,750 এটা একটা চমৎকার সুবিধা হবে. 138 00:06:28,750 --> 00:06:31,250 >> এখানে একটি হ্যাশ ফাংশন একটি উদাহরণ. 139 00:06:31,250 --> 00:06:33,150 আমি আগে এই এক আপ লিখেছেন. 140 00:06:33,150 --> 00:06:35,047 এটি একটি বিশেষ নয় ভাল হ্যাশ ফাংশন 141 00:06:35,047 --> 00:06:37,380 সত্যিই না যে কারণে এই মুহূর্তে মধ্যে যাওয়া বহন করে. 142 00:06:37,380 --> 00:06:41,040 কিন্তু তুমি এখানে কি ঘটছে দেখতে পাচ্ছ? 143 00:06:41,040 --> 00:06:44,420 আমরা একটি পরিবর্তনশীল ঘোষণা করছি এটি দেখে মনে হচ্ছে যোগফল এবং 0 সমান এটি সেট বলা হয়. 144 00:06:44,420 --> 00:06:50,010 এবং তারপর দৃশ্যত আমি কিছু কাজ করছি এতক্ষণ strstr [ঞ] সমান নয় হিসাবে 145 00:06:50,010 --> 00:06:52,490 0 ব্যাকস্ল্যাশ করতে. 146 00:06:52,490 --> 00:06:54,870 আমি সেখানে কি করছি? 147 00:06:54,870 --> 00:06:57,440 >> এটি মূলত শুধু আরেকটি হল [বাস্তবায়নের উপায়? strl?] 148 00:06:57,440 --> 00:06:59,773 আপনি করেছি যখন এবং detecting স্ট্রিং শেষে পৌঁছে. 149 00:06:59,773 --> 00:07:02,480 তাই আমি আসলে হবে না স্ট্রিং এর দৈর্ঘ্য নিরূপণ, 150 00:07:02,480 --> 00:07:05,640 আমি আঘাত যখন আমি শুধু ব্যবহার করছি ব্যাকস্ল্যাশ 0 চরিত্র আমি জানি 151 00:07:05,640 --> 00:07:07,185 আমি স্ট্রিং শেষে পৌঁছে গেছেন. 152 00:07:07,185 --> 00:07:09,560 এবং তারপর আমি রাখা যাচ্ছে না স্ট্রিং মাধ্যমে iterating, 153 00:07:09,560 --> 00:07:15,310 strstr [ঞ] যোগ এ তারপর সমষ্টি, এবং যাও দিনের শেষে সমষ্টি গেলিক ফিরে যাচ্ছে 154 00:07:15,310 --> 00:07:16,200 HASH_MAX. 155 00:07:16,200 --> 00:07:18,700 >> মূলত এই সব হ্যাশ ফাংশন আপ যোগ হয় করছে 156 00:07:18,700 --> 00:07:23,450 এর ASCII মান সব আমার স্ট্রিং, এবং তারপর এটি 157 00:07:23,450 --> 00:07:26,390 কিছু হ্যাশকোড ফিরে HASH_MAX দ্বারা modded. 158 00:07:26,390 --> 00:07:29,790 এটা সম্ভবত আকার আমার অ্যারের, ডান? 159 00:07:29,790 --> 00:07:33,160 আমি হ্যাশ পেয়ে যেতে চাই না সঙ্কেত আমার অ্যারের সাইজ 10 থেকে হয়ে থাকে, 160 00:07:33,160 --> 00:07:35,712 আমি পেয়ে হতে চান না খুঁজে হ্যাশ কোড 11, 12, 161 00:07:35,712 --> 00:07:38,690 13, আমি শুধুমাত্র কিছু করা যাবে না অ্যারের সেইসব অবস্থানের, 162 00:07:38,690 --> 00:07:39,790 যে অবৈধ হবে. 163 00:07:39,790 --> 00:07:42,130 আমি একটি সেগমেন্টেশন ফল্ট ভোগে চাই. 164 00:07:42,130 --> 00:07:45,230 >> এখন এখানে অন্য একটি দ্রুত সরাইয়া হয়. 165 00:07:45,230 --> 00:07:48,470 সাধারণত আপনি সম্ভবত যাচ্ছেন না আপনার নিজস্ব হ্যাশ ফাংশন লিখতে চান. 166 00:07:48,470 --> 00:07:50,997 এটা আসলে একটি বিট একটি শিল্প, একটি বিজ্ঞান. 167 00:07:50,997 --> 00:07:52,580 এবং তাদের মধ্যে যে যায় অনেক আছে. 168 00:07:52,580 --> 00:07:55,288 আমি ভালো বলেন ইন্টারনেট, পূর্ণ সত্যিই ভাল হ্যাশ ফাংশন, 169 00:07:55,288 --> 00:07:58,470 এবং আপনাকে ইন্টারনেট ব্যবহার করা উচিত এটা সত্যিই কারণ হ্যাশ ফাংশন খুঁজে 170 00:07:58,470 --> 00:08:03,230 শুধু ধরনের একটি অপ্রয়োজনীয় সময় বর্জ্য আপনার নিজের তৈরি করা. 171 00:08:03,230 --> 00:08:05,490 >> আপনি সহজ ওগুলো লিখতে পারেন পরীক্ষার উদ্দেশ্যে. 172 00:08:05,490 --> 00:08:08,323 কিন্তু আপনি আসলে করতে যাচ্ছি যখন তথ্য হ্যাশ এবং এটি সংরক্ষণ শুরু 173 00:08:08,323 --> 00:08:10,780 আপনি আছেন একটি হ্যাশ টেবিল মধ্যে সম্ভবত চান যাচ্ছে 174 00:08:10,780 --> 00:08:14,580 উত্পন্ন হয় যে কিছু ফাংশন ব্যবহার আপনার জন্য, যে ইন্টারনেটে বিদ্যমান. 175 00:08:14,580 --> 00:08:17,240 আপনি শুধু নিশ্চিত হতে থাকে আপনার সূত্র cite. 176 00:08:17,240 --> 00:08:21,740 কোনো কারণ নেই এখানে কিছু থাকতাম দ্বিতীয় তলায়. 177 00:08:21,740 --> 00:08:25,370 >> কম্পিউটার বিজ্ঞান সম্প্রদায় স্পষ্টভাবে মান ক্রমবর্ধমান, এবং সত্যিই 178 00:08:25,370 --> 00:08:28,796 ওপেন সোর্স, এবং এটা সত্যিই গুরুত্বপূর্ণ আপনার সূত্র cite যাতে মানুষ 179 00:08:28,796 --> 00:08:30,670 স্বীকৃতি পেতে পারেন তারা যে কাজ 180 00:08:30,670 --> 00:08:32,312 কমিউনিটি সুবিধার করছেন. 181 00:08:32,312 --> 00:08:34,020 তাই সবসময় sure-- হতে এবং শুধুমাত্র হ্যাশ জন্য 182 00:08:34,020 --> 00:08:37,270 ফাংশন, কিন্তু সাধারণত যখন আপনি বাইরের উত্স থেকে কোড ব্যবহার, 183 00:08:37,270 --> 00:08:38,299 সবসময় আপনার সোর্স উদ্ধৃত. 184 00:08:38,299 --> 00:08:43,500 করেনি এমন ব্যক্তিকে ঋণ দিতে কাজের কিছু তাই আপনাকে করতে হবে না. 185 00:08:43,500 --> 00:08:46,720 >> ঠিক আছে, তাই এর এই পরিদর্শন দিন একটি দ্বিতীয় জন্য হ্যাশ টেবিল. 186 00:08:46,720 --> 00:08:48,780 আমরা বাকি এই যেখানে আমরা ঢোকানো পরে বন্ধ 187 00:08:48,780 --> 00:08:53,300 এই হ্যাশ টেবিল মধ্যে জন এবং পল. 188 00:08:53,300 --> 00:08:55,180 আপনি এখানে একটি সমস্যা দেখতে পান কি? 189 00:08:55,180 --> 00:08:58,410 আপনি দুটি দেখতে পারে. 190 00:08:58,410 --> 00:09:02,240 কিন্তু বিশেষ করে, আপনি কি এই সম্ভাব্য সমস্যা দেখতে? 191 00:09:02,240 --> 00:09:06,770 >> আমি কি রিংগো হ্যাশ, এবং এটা যদি প্রক্রিয়াকরণের পরে দেখা যাচ্ছে যে 192 00:09:06,770 --> 00:09:14,000 হ্যাশ ফাংশন মাধ্যমে যে তথ্য রিংগো এছাড়াও হ্যাশকোড 6 উত্পন্ন. 193 00:09:14,000 --> 00:09:16,810 আমি ইতিমধ্যে এ তথ্য পেয়েছেন hashcode-- অ্যারে পাঁচ 6. 194 00:09:16,810 --> 00:09:22,000 সুতরাং এটি সম্ভবত একটি বিট হতে যাচ্ছে এখন আমার জন্য একটা সমস্যা, ঠিক? 195 00:09:22,000 --> 00:09:23,060 >> আমরা একটি সংঘর্ষের এই কল. 196 00:09:23,060 --> 00:09:26,460 এবং সংঘর্ষের সময় দুটি ঘটে তথ্য টুকরা একই হ্যাশ মাধ্যমে চালানো 197 00:09:26,460 --> 00:09:29,200 ফাংশন একই হ্যাশকোড ফলন হয়. 198 00:09:29,200 --> 00:09:32,850 সম্ভবতঃ আমরা এখনও উভয় পেতে চান হ্যাশ টেবিল মধ্যে তথ্য টুকরা, 199 00:09:32,850 --> 00:09:36,330 অন্যথায় আমরা রিংগো চলমান করা হবে না ইচ্ছামত হ্যাশ ফাংশন মাধ্যমে. 200 00:09:36,330 --> 00:09:40,870 আমরা সম্ভবতঃ পেতে চান যে অ্যারের মধ্যে Ringo. 201 00:09:40,870 --> 00:09:46,070 >> আমরা যদিও এটা করতে না, তিনি যদি এবং পল উভয় ফলন হ্যাশকোড 6? 202 00:09:46,070 --> 00:09:49,520 আমরা পল সেগুলিও ফরোয়ার্ড করতে চান না, আমরা পল খুব হতে চাই. 203 00:09:49,520 --> 00:09:52,790 সুতরাং আমরা পেতে একটি উপায় খুঁজে বের করতে হবে হ্যাশ টেবিল মধ্যে উপাদান যে 204 00:09:52,790 --> 00:09:56,550 এখনও আমাদের দ্রুত অপরিবর্তিত সন্নিবেশ এবং দ্রুত বর্ণন আপ. 205 00:09:56,550 --> 00:10:01,350 এবং তা মোকাবেলা করার জন্য একটি উপায় হয় অনুসন্ধান রৈখিক কিছু বলা না. 206 00:10:01,350 --> 00:10:04,170 >> আমরা একটি আছে এই পদ্ধতি ব্যবহার সংঘর্ষের, ভাল, আমরা কি করব? 207 00:10:04,170 --> 00:10:08,580 আচ্ছা আমরা অ্যারে পাঁচ তাকে রাখা যাবে না 6, বা যাই হোক না কেন হ্যাশকোড উত্পন্ন হয়, 208 00:10:08,580 --> 00:10:10,820 এর হ্যাশকোড প্লাস 1 এ তাকে করা যাক. 209 00:10:10,820 --> 00:10:13,670 আর যে পূর্ণ চলুন যদি হ্যাশকোড প্লাস 2 তাকে রাখা. 210 00:10:13,670 --> 00:10:17,420 এই হচ্ছে সুবিধার তিনি যদি না ঠিক তা কেমন করে হয় মনে হয় যেখানে, 211 00:10:17,420 --> 00:10:20,850 এবং আমরা অনুসন্ধান শুরু করতে হবে, হয়তো আমরা খুব বেশী দূরে যেতে হবে না. 212 00:10:20,850 --> 00:10:23,900 হয়তো আমরা অনুসন্ধান করতে হবে না হ্যাশ টেবিল সব n উপাদান. 213 00:10:23,900 --> 00:10:25,790 হয়তো আমরা আপনাকে আছে তাদের একটি দম্পতি. 214 00:10:25,790 --> 00:10:30,680 >> আর তাই আমরা এখনও প্রতি tending করছি গড় ক্ষেত্রে 1 পাসে বনাম হচ্ছে যে 215 00:10:30,680 --> 00:10:34,280 এন যাও বন্ধ, তাই হয়ত যে কাজ করব. 216 00:10:34,280 --> 00:10:38,010 সুতরাং আসুন কিভাবে এই দেখতে দিন বাস্তবে কাজ পারে. 217 00:10:38,010 --> 00:10:41,460 এবং হয়তো আমরা সনাক্ত করা সম্ভব, তাহলে দেখা যাক এখানে ঘটতে পারে যে সমস্যা. 218 00:10:41,460 --> 00:10:42,540 >> আসুন আমরা বার্ট হ্যাশ বলা যাক. 219 00:10:42,540 --> 00:10:45,581 তাই এখন আমরা একটি নতুন সেট চালানো চলুন হ্যাশ ফাংশন মাধ্যমে স্ট্রিং, 220 00:10:45,581 --> 00:10:48,460 এবং আমরা হ্যাশ মাধ্যমে বার্ট চালানো ফাংশন, আমরা হ্যাশকোড 6 পেতে. 221 00:10:48,460 --> 00:10:52,100 আমরা দেখব, আমরা 6 দেখতে খালি, তাই আমরা সেখানে বার্ট লাগাতে পারেন. 222 00:10:52,100 --> 00:10:55,410 >> এখন আমরা Lisa এবং যে হ্যাশ এছাড়াও হ্যাশকোড 6 উত্পন্ন. 223 00:10:55,410 --> 00:10:58,330 অবশ্য, এখন আমরা এই ব্যবহার করছেন রৈখিক, আমরা 6 থেকে খেলা আরম্ভ করার পদ্ধতি নীরিক্ষণ 224 00:10:58,330 --> 00:10:59,330 আমরা 6 পূর্ণ দেখতে. 225 00:10:59,330 --> 00:11:00,990 আমরা 6 লিসা করা যাবে না. 226 00:11:00,990 --> 00:11:02,090 তাই যেখানে আমরা যেতে পারি না? 227 00:11:02,090 --> 00:11:03,280 এর 7 যাই. 228 00:11:03,280 --> 00:11:04,610 7 এর খালি, তাই কাজ করে. 229 00:11:04,610 --> 00:11:06,510 সুতরাং আসুন আছে লিসা করা যাক. 230 00:11:06,510 --> 00:11:10,200 >> এখন আমরা হোমার হ্যাশ এবং আমরা 7 পেতে. 231 00:11:10,200 --> 00:11:13,380 ওকে আমরা ভাল জানি 7 এর পূর্ণ যে এখন, তাই আমরা সেখানে হোমার করা যাবে না. 232 00:11:13,380 --> 00:11:14,850 সুতরাং আসুন 8 যেতে দিন. 233 00:11:14,850 --> 00:11:15,664 8 পাওয়া যায়? 234 00:11:15,664 --> 00:11:18,330 হাঁ, এবং 7 8 এর বন্ধ, তাই যদি আমরা করছি অনুসন্ধান শুরু করতে হবে 235 00:11:18,330 --> 00:11:20,020 খুব দূরে যেতে হবে যাচ্ছে না. 236 00:11:20,020 --> 00:11:22,860 আর তাই এর 8 এ হোমার করা যাক. 237 00:11:22,860 --> 00:11:25,151 >> এখন আমরা হ্যাশ Maggie এবং 3 আয় ভগবান্ 238 00:11:25,151 --> 00:11:26,650 আমরা শুধু সেখানে ম্যাগি লাগাতে সক্ষম হন. 239 00:11:26,650 --> 00:11:29,070 আমরা কোনো কাজ করতে হবে না সাজান যে জন্য নীরিক্ষণ. 240 00:11:29,070 --> 00:11:32,000 এখন আমরা কানা হ্যাশ, এবং কানা 6 ফেরৎ. 241 00:11:32,000 --> 00:11:39,560 >> ওয়েল 6, 8 পূর্ণ, 7 পূর্ণ, পূর্ণ 9, ঠিক আছে 9 খালি, ঈশ্বরকে ধন্যবাদ. 242 00:11:39,560 --> 00:11:41,600 আমি 9 এ কানা লাগাতে পারেন. 243 00:11:41,600 --> 00:11:45,280 ইতিমধ্যে আমরা শুরু করছি দেখতে পারেন আমরা যেখানে এখন এই সমস্যা আছে 244 00:11:45,280 --> 00:11:48,780 ধরনের জিনিষ প্রসারিত শুরু এর দূরে তাদের হ্যাশ কোড থেকে. 245 00:11:48,780 --> 00:11:52,960 আর 1 এর যে থেটা, যে গড় ধ্রুব সময় হচ্ছে ক্ষেত্রে, 246 00:11:52,960 --> 00:11:56,560 একটু more-- পেতে শুরু হয় আরো একটু ঝোঁক শুরু 247 00:11:56,560 --> 00:11:58,050 এন থেটা দিকে. 248 00:11:58,050 --> 00:12:01,270 আমরা যে হারাতে শুরু করছেন হ্যাশ টেবিল সুবিধা. 249 00:12:01,270 --> 00:12:03,902 >> আমরা শুধু দেখেছি যে এই সমস্যা ক্লাস্টারিং কিছু বলা হয়. 250 00:12:03,902 --> 00:12:06,360 আর সম্পর্কে সত্যিই খারাপ কি ক্লাস্টারিং যে আপনি একবার এখন 251 00:12:06,360 --> 00:12:09,606 পাশ হয় দুটি উপাদান দ্বারা আছে এটা আরও বেশি সম্ভাবনা তোলে প্রান্তের, 252 00:12:09,606 --> 00:12:11,480 আপনি ডবল আছে সুযোগ, আপনি যাচ্ছেন যে 253 00:12:11,480 --> 00:12:13,516 অন্য সংঘর্ষের আছে যে থোকা, 254 00:12:13,516 --> 00:12:14,890 এবং ক্লাস্টারের এক হত্তয়া হবে. 255 00:12:14,890 --> 00:12:19,640 আর আপনি ক্রমবর্ধমান এবং ক্রমবর্ধমান যাব সংঘর্ষের হচ্ছে আপনার সম্ভাবনা. 256 00:12:19,640 --> 00:12:24,470 এবং শেষ পর্যন্ত এটা ঠিক যেমন খারাপ এ সব তথ্য বাছাই না. 257 00:12:24,470 --> 00:12:27,590 >> অন্যান্য সমস্যা যদিও আমরা হয় এখনও, এবং এখন পর্যন্ত এই বিন্দু পর্যন্ত, 258 00:12:27,590 --> 00:12:30,336 আমরা শুধু সাজানোর চলেছি একটি হ্যাশ টেবিল কি বুঝতে, 259 00:12:30,336 --> 00:12:31,960 আমরা এখনও শুধুমাত্র 10 স্ট্রিং জন্য রুম আছে. 260 00:12:31,960 --> 00:12:37,030 আমরা হ্যাশ অবিরত করতে চান তাহলে স্প্রিংফিল্ড নাগরিকদের, 261 00:12:37,030 --> 00:12:38,790 আমরা কেবল সেখানে তাদের 10 পেতে পারেন. 262 00:12:38,790 --> 00:12:42,619 আর আমরা, চেষ্টা এবং একটি 11 বা 12 যোগ হলে আমরা তাদের করা একটি জায়গা আছে না. 263 00:12:42,619 --> 00:12:45,660 আমরা শুধু কাছাকাছি কাটনা হতে পারে বৃত্ত, একটি খালি স্পট খুঁজে বের করার চেষ্টা করুন 264 00:12:45,660 --> 00:12:49,000 এবং আমরা হয়তো আটকে অসীম লুপ. 265 00:12:49,000 --> 00:12:51,810 >> তাই ধারণা করা ধার এই সাজানোর কিছু chaining বলা. 266 00:12:51,810 --> 00:12:55,790 আর এই আমরা আনতে যাচ্ছেন কোথায় ফিরে ছবি মধ্যে লিঙ্ক তালিকা. 267 00:12:55,790 --> 00:13:01,300 যদি পরিবর্তে শুধু সংরক্ষণকারী অ্যারের মধ্যে তথ্য নিজেই, 268 00:13:01,300 --> 00:13:04,471 অ্যারের প্রতিটি উপাদান পারা একাধিক টুকরা ডাটা রাখা? 269 00:13:04,471 --> 00:13:05,970 ভাল যে ঠিক আছে, জানার জন্য না? 270 00:13:05,970 --> 00:13:09,280 আমরা যে একটি অ্যারের শুধুমাত্র পারেন জানি একটি অ্যারের প্রতিটি উপাদান hold-- 271 00:13:09,280 --> 00:13:12,930 কেবল এক টুকরা রাখা যাবে যে ডাটা টাইপ ডাটা. 272 00:13:12,930 --> 00:13:16,750 >> কিন্তু তা যদি যে ডাটা টাইপ একটি লিঙ্ক তালিকা, ডান? 273 00:13:16,750 --> 00:13:19,830 তাই কি যদি ভাষার অ্যারের উপাদান ছিল 274 00:13:19,830 --> 00:13:22,790 একটি লিঙ্ক তালিকা মাথার একটি পয়েন্টার? 275 00:13:22,790 --> 00:13:24,680 এবং তারপর আমরা গড়ে তুলতে পারে যারা সংযুক্ত তালিকা 276 00:13:24,680 --> 00:13:27,120 এবং, ইচ্ছামত তাদের হত্তয়া লিঙ্ক তালিকা অনুমতি কারণ 277 00:13:27,120 --> 00:13:32,090 আমাদের বড় হয়ে যায় এবং আরো অনেক সঙ্কুচিত একটি অ্যারের না সহজে তুলনায়. 278 00:13:32,090 --> 00:13:34,210 তাই কি আমরা এখন ব্যবহার করা হলে, আমরা ঠিক আছে, এই লিভারেজ? 279 00:13:34,210 --> 00:13:37,760 আমরা এই চেইন বাড়া শুরু এই অ্যারে অবস্থানের আউট. 280 00:13:37,760 --> 00:13:40,740 >> এখন আমরা অসীম ফিট করতে পারে তথ্য পরিমাণ, অথবা অসীম নয়, 281 00:13:40,740 --> 00:13:44,170 একটি অবাধ পরিমাণ তথ্য আমাদের হ্যাশ টেবিল মধ্যে 282 00:13:44,170 --> 00:13:47,760 কখনও মধ্যে চলমান ছাড়া সংঘর্ষের সমস্যা. 283 00:13:47,760 --> 00:13:50,740 আমরা দূর করেছি এই করছেন দ্বারা ক্লাস্টারিং. 284 00:13:50,740 --> 00:13:54,380 আর ভাল আমরা সন্নিবেশ যখন জানি যে একটি লিঙ্ক তালিকা মধ্যে, আপনি প্রত্যাহার হলে 285 00:13:54,380 --> 00:13:57,779 একেলা, লিঙ্ক তালিকা আমাদের ভিডিও থেকে লিঙ্ক তালিকা এবং দোকর লিঙ্ক তালিকা, 286 00:13:57,779 --> 00:13:59,070 এটি একটি ধ্রুবক সময় অপারেশন. 287 00:13:59,070 --> 00:14:00,710 আমরা শুধু সামনে যোগ করছি. 288 00:14:00,710 --> 00:14:04,400 >> এবং চেহারা আপ জন্য, আমরা ভাল জানি না একটি লিঙ্ক তালিকায় সন্ধান 289 00:14:04,400 --> 00:14:05,785 ঠিক আছে, একটা সমস্যা হতে পারে? 290 00:14:05,785 --> 00:14:07,910 আমরা মাধ্যমে অনুসন্ধান করতে হবে শুরু থেকে এটা শেষ করতে. 291 00:14:07,910 --> 00:14:10,460 কোন র্যান্ডম নেই একটি লিঙ্ক তালিকা অ্যাক্সেস. 292 00:14:10,460 --> 00:14:15,610 কিন্তু যদি এর পরিবর্তে এক থাকার লিঙ্ক একটি লুকআপ n হে হতে হবে যেখানে তালিকা, 293 00:14:15,610 --> 00:14:19,590 আমরা এখন 10 লিঙ্ক তালিকা আছে, বা 1,000 লিঙ্ক তালিকা, 294 00:14:19,590 --> 00:14:24,120 এখন তা 10 দ্বারা বিভক্ত n হে, বা n হে 1,000 দ্বারা বিভক্ত. 295 00:14:24,120 --> 00:14:26,940 >> আর আমরা কথা বলছে এমন সময় তাত্ত্বিকভাবে জটিলতা সম্পর্কে 296 00:14:26,940 --> 00:14:30,061 আমরা বাস্তব, ধ্রুবক উপেক্ষা এই জিনিস আসলে ব্যাপার বিশ্বের, 297 00:14:30,061 --> 00:14:30,560 ঠিক আছে? 298 00:14:30,560 --> 00:14:33,080 আমরা আসলে লক্ষ্য করবেন এই যে এরকম 299 00:14:33,080 --> 00:14:36,610 দ্রুত 10 বার চালানোর, বা 1,000 গুণ দ্রুত, 300 00:14:36,610 --> 00:14:41,570 আমরা দীর্ঘ এক বিতরণ করছি কারণ 1,000 ছোট চেইন জুড়ে চেইন. 301 00:14:41,570 --> 00:14:45,090 এবং তাই আমরা আছে প্রতিটি সময় আপনাকে আমরা যা করতে পারেন যারা চেইন এক মাধ্যমে 302 00:14:45,090 --> 00:14:50,290 আমরা পরোয়া করি না 999 চেইন উপেক্ষা সম্পর্কে, এবং শুধু যে এক অনুসন্ধান. 303 00:14:50,290 --> 00:14:53,220 >> যা গড়ে হয় 1,000 বার খাটো হতে. 304 00:14:53,220 --> 00:14:56,460 আর তাই আমরা এখনও ধরণের হয় এই গড় ক্ষেত্রে প্রতি tending 305 00:14:56,460 --> 00:15:01,610 ধ্রুব সময় হচ্ছে, কিন্তু শুধুমাত্র আমরা ওঠানামা করছে, কারণ 306 00:15:01,610 --> 00:15:03,730 কিছু বিপুল ধ্রুব ফ্যাক্টর দ্বারা বিভাজক. 307 00:15:03,730 --> 00:15:05,804 কিভাবে এই পারে দেখা যাক আসলে যদিও চেহারা. 308 00:15:05,804 --> 00:15:08,720 তাই এই আমরা ছিল হ্যাশ টেবিল ছিল আমরা একটি হ্যাশ টেবিল ঘোষণা করার আগে যে 309 00:15:08,720 --> 00:15:10,270 10 পংক্তি সংরক্ষণ করতে সক্ষম ছিল না. 310 00:15:10,270 --> 00:15:11,728 আমরা আর যে কাজ করতে যাচ্ছেন না. 311 00:15:11,728 --> 00:15:13,880 আমরা ইতিমধ্যে জানি যে পদ্ধতি সীমাবদ্ধতার. 312 00:15:13,880 --> 00:15:20,170 এখন আমাদের হ্যাশ টেবিল হতে যাচ্ছে 10 নোড পয়েন্টার একটি অ্যারের 313 00:15:20,170 --> 00:15:22,120 লিঙ্ক তালিকা মাথা. 314 00:15:22,120 --> 00:15:23,830 >> এবং তা এখনই নাল. 315 00:15:23,830 --> 00:15:26,170 যারা 10 পয়েন্টার প্রত্যেকই নাল. 316 00:15:26,170 --> 00:15:29,870 কিছুই আমাদের মধ্যে নেই এই মুহূর্তে টেবিল হ্যাশ. 317 00:15:29,870 --> 00:15:32,690 >> এখন এর কিছু করা শুরু করা যাক এই হ্যাশ টেবিল মধ্যে কিছু. 318 00:15:32,690 --> 00:15:35,440 আর এর এই পদ্ধতি কিভাবে দেখতে দিন আমাদের অল্প লাভবান হতে যাচ্ছে. 319 00:15:35,440 --> 00:15:36,760 এর এখন জোয়ি হ্যাশ যাক. 320 00:15:36,760 --> 00:15:40,210 আমরা স্ট্রিং জোয়ি মাধ্যমে চালানো হবে করব একটি হ্যাশ ফাংশন এবং আমরা 6 আসতে. 321 00:15:40,210 --> 00:15:41,200 আচ্ছা আমরা এখন কি করব? 322 00:15:41,200 --> 00:15:44,090 >> অবশ্য, এখন সংযুক্ত তালিকার সঙ্গে কাজ, আমরা অ্যারে সঙ্গে কাজ করছি না. 323 00:15:44,090 --> 00:15:45,881 এবং আমরা কাজ করছি যখন সংযুক্ত তালিকার সঙ্গে আমরা 324 00:15:45,881 --> 00:15:49,790 আমরা পরিবর্তনশীল শুরু করতে হবে জানি স্থান ও ভবন চেইন বণ্টন. 325 00:15:49,790 --> 00:15:54,020 যে ধরণের যারা কোর how-- এর একটি লিঙ্ক তালিকা নির্মাণের উপাদান. 326 00:15:54,020 --> 00:15:57,670 তাই পরিবর্তনশীল এর দিন জোয়ি জন্য স্থান বরাদ্দ করা, 327 00:15:57,670 --> 00:16:00,390 এবং তারপর এর চেইন তাকে যোগ দিন. 328 00:16:00,390 --> 00:16:03,170 >> তাই এখন আমরা কাজ করেছি তা দেখুন. 329 00:16:03,170 --> 00:16:06,440 আমরা জোয়ি হ্যাশ যখন আমরা হ্যাশকোড 6 পেয়েছিলাম. 330 00:16:06,440 --> 00:16:11,790 অ্যারে পাঁচ 6 এ এখন পয়েন্টার একটি লিঙ্ক তালিকা মাথা স্থানটিকে, 331 00:16:11,790 --> 00:16:14,900 এবং এই মুহূর্তে এটা কেবলমাত্র একটি লিঙ্ক তালিকা উপাদান. 332 00:16:14,900 --> 00:16:18,350 আর যে নোড লিঙ্ক তালিকা জোয়ি হয়. 333 00:16:18,350 --> 00:16:22,300 >> আমরা জোয়ি সন্ধান করার প্রয়োজন হলে তাই পরে, আমরা শুধু আবার জোয়ি হ্যাশ, 334 00:16:22,300 --> 00:16:26,300 আমরা আমাদের কারণ আবার 6 পেতে হ্যাশ ফাংশন নিয়ন্ত্রণবাদী হয়. 335 00:16:26,300 --> 00:16:30,400 এবং তারপর আমরা মাথা এ শুরু লিঙ্ক তালিকা নির্দিষ্ট 336 00:16:30,400 --> 00:16:33,360 অ্যারে অবস্থান দ্বারা যাও 6, এবং আমরা পুনরুক্তি করতে পারেন 337 00:16:33,360 --> 00:16:35,650 জোয়ি খুঁজে বের করার চেষ্টা করুন যে জুড়ে. 338 00:16:35,650 --> 00:16:37,780 আর আমরা গড়ে তুলতে হলে আমাদের কার্যকরভাবে হ্যাশ টেবিল, 339 00:16:37,780 --> 00:16:41,790 এবং আমাদের হ্যাশ ফাংশন কার্যকরভাবে ভাল তথ্য বিতরণ করতে, 340 00:16:41,790 --> 00:16:45,770 গড়ে যারা প্রতিটি লিঙ্ক ভাষার অ্যারে অবস্থানে তালিকা 341 00:16:45,770 --> 00:16:50,110 তাহলে মাপ 1/10 হতে হবে আমরা কেবলমাত্র একটি বিশাল হিসেবে এটি ছিল 342 00:16:50,110 --> 00:16:51,650 এটা সবকিছু সাথে লিঙ্ক তালিকা. 343 00:16:51,650 --> 00:16:55,670 >> আমরা বিশাল লিঙ্ক যে বিতরণ যদি 10 লিঙ্ক তালিকায় জুড়ে তালিকা 344 00:16:55,670 --> 00:16:57,760 প্রতিটি তালিকা 1/10 আকার হতে হবে. 345 00:16:57,760 --> 00:17:01,432 আর এভাবেই 10 বার দ্রুততর মাধ্যমে আপনাকে. 346 00:17:01,432 --> 00:17:02,390 সুতরাং আসুন আবার এই কাজ করা যাক. 347 00:17:02,390 --> 00:17:04,290 এর এখন রস হ্যাশ যাক. 348 00:17:04,290 --> 00:17:07,540 >> আর এর যখন আমরা যে রস, বলা যাক আমরা ফিরে পেতে হ্যাশ কোড 2 হয়. 349 00:17:07,540 --> 00:17:10,630 অবশ্য, এখন আমরা একটি পরিবর্তনশীল বরাদ্দ নতুন নোড, আমরা যে নোড রস করা 350 00:17:10,630 --> 00:17:14,900 এবং আমরা অ্যারে পাঁচ এখন বলতে 2, নাল প্রতি নির্দেশ পরিবর্তে, 351 00:17:14,900 --> 00:17:18,579 একটি লিঙ্ক প্রধান স্থানটিকে যার একমাত্র নোড তালিকায় রস হয়. 352 00:17:18,579 --> 00:17:22,660 এবং আমরা এই আরো এক সময় নির্বাচন করতে পারবেন রাহেলা হ্যাশ এবং হ্যাশকোড 4 পেতে পারেন. 353 00:17:22,660 --> 00:17:25,490 এ রেচেল করা, নতুন নোডের malloc নোড, এবং একটি অ্যারের পাঁচ বলে 354 00:17:25,490 --> 00:17:27,839 4 এখন মাথা স্থানটিকে যার একটি লিঙ্ক তালিকা 355 00:17:27,839 --> 00:17:31,420 একমাত্র উপাদান রেচেল হতে হবে. 356 00:17:31,420 --> 00:17:33,470 >> ঠিক আছে কিন্তু তা যদি ঘটে আমরা একটি সংঘর্ষের আছে? 357 00:17:33,470 --> 00:17:38,560 আসুন আমরা দুর্ঘটনায় হ্যান্ডেল কিভাবে দেখতে দিন পৃথক chaining পদ্ধতি ব্যবহার করে. 358 00:17:38,560 --> 00:17:39,800 এর চন্দ্র হ্যাশ যাক. 359 00:17:39,800 --> 00:17:41,094 আমরা হ্যাশকোড 6 পেতে. 360 00:17:41,094 --> 00:17:44,010 আমাদের পূর্ববর্তী উদাহরণে আমরা শুধু ছিল অ্যারের মধ্যে পংক্তি সংরক্ষণ. 361 00:17:44,010 --> 00:17:45,980 এই একটা সমস্যা ছিল. 362 00:17:45,980 --> 00:17:48,444 >> আমরা জখম করা চাই না জোয়ি, এবং আমরা ইতিমধ্যে করেছি 363 00:17:48,444 --> 00:17:51,110 আমরা কিছু ক্লাস্টারিং পেতে পারেন যে দেখা সমস্যা আমরা চেষ্টা এবং ধাপে 364 00:17:51,110 --> 00:17:52,202 মাধ্যমে ও প্রোবের. 365 00:17:52,202 --> 00:17:54,660 কিন্তু তা যদি আমরা শুধু এই ধরনের এই অধিকার, একই ভাবে আচরণ? 366 00:17:54,660 --> 00:17:57,440 এটা শুধু একটি উপাদান যোগ মত একটি লিঙ্ক তালিকা মাথার. 367 00:17:57,440 --> 00:18:00,220 চন্দ্র জন্য এর মাত্র malloc স্থান যাক. 368 00:18:00,220 --> 00:18:04,764 >> আমরা চন্দ্র এর পরের পয়েন্টার পয়েন্ট বলবো লিঙ্ক তালিকা পুরোনো মাথা থেকে, 369 00:18:04,764 --> 00:18:07,180 এবং সকাল 6 শুধু স্থানটিকে লিঙ্ক তালিকা নতুন প্রধান. 370 00:18:07,180 --> 00:18:10,150 আর এখন আমরা চন্দ্র পরিবর্তন করেছি, দেখুন. 371 00:18:10,150 --> 00:18:14,210 আমরা এখন দুই সংরক্ষণ করতে পারেন হ্যাশকোড 6 উপাদান, 372 00:18:14,210 --> 00:18:17,170 এবং আমরা যে কোন সমস্যা হবে না. 373 00:18:17,170 --> 00:18:20,147 >> যে অনেক সুন্দর সব chaining আছে. 374 00:18:20,147 --> 00:18:21,980 আর chaining তা হ 'ল যে পদ্ধতি 375 00:18:21,980 --> 00:18:27,390 আপনি যদি জন্য সবচেয়ে কার্যকর হতে যাচ্ছে আপনি একটি হ্যাশ টেবিল তথ্য সংরক্ষণ করা হয়. 376 00:18:27,390 --> 00:18:30,890 কিন্তু এই সমন্বয় অ্যারে এবং সংযুক্ত তালিকা 377 00:18:30,890 --> 00:18:36,080 একসঙ্গে সত্যিই একটি হ্যাশ টেবিল গঠন নাটকীয়ভাবে আপনার ক্ষমতা উন্নত 378 00:18:36,080 --> 00:18:40,550 বিপুল পরিমাণ ডেটা সংরক্ষণ করা খুব দ্রুত এবং দক্ষতার অনুসন্ধান 379 00:18:40,550 --> 00:18:41,630 যে তথ্য মাধ্যমে. 380 00:18:41,630 --> 00:18:44,150 >> আরও এখনও নেই সেখানে আউট ডাটা স্ট্রাকচার 381 00:18:44,150 --> 00:18:48,700 যে এমনকি একটি বিট হতে পারে নিশ্চয়তা পদ ভালো 382 00:18:48,700 --> 00:18:51,920 আমাদের সন্নিবেশ, অপসারণ, এবং খোঁজা বার আরও দ্রুত হয়. 383 00:18:51,920 --> 00:18:55,630 আর আমরা চেষ্টা একটি ভিডিওতে দেখতে পাবেন. 384 00:18:55,630 --> 00:18:58,930 আমি ডগ লয়েড আছি, এই CS50. 385 00:18:58,930 --> 00:19:00,214