الگوریتم فلوید
در این الگوریتم از روش Dynamic Programming استفاده شده است که این روش از مرتبه n^3 می باشد که از هزینه بسیار کمتری نسبت به الگوریتم عادی آن دارد که اگر به صورت عادی بخواهیم کوتاه ترین مسیر رو پیدا کنیم فاکتوریلی خواهد شد و این اصلا مناسب نخواهد بود.
📣👨💻 @AlgorithmDesign_DataStructuer
در این الگوریتم از روش Dynamic Programming استفاده شده است که این روش از مرتبه n^3 می باشد که از هزینه بسیار کمتری نسبت به الگوریتم عادی آن دارد که اگر به صورت عادی بخواهیم کوتاه ترین مسیر رو پیدا کنیم فاکتوریلی خواهد شد و این اصلا مناسب نخواهد بود.
📣👨💻 @AlgorithmDesign_DataStructuer
👨💻5
👨💻2
جدول هش(Hash Table)
جدول هش یکی از مهم ترین ساختارهای داده است که از یک تابع خاص به نام تابع هش استفاده می کند که یک مقدار داده شده را با یک کلید برای دسترسی سریعتر به عناصر ترسیم می کند.
جدول هش یک ساختار داده ای است که برخی از اطلاعات را ذخیره می کند و اطلاعات اساساً دارای دو جزء اصلی است، یعنی کلید و مقدار. جدول هش را می توان با کمک یک آرایه انجمنی پیاده سازی کرد. کارایی نگاشت بستگی به کارایی تابع هش مورد استفاده برای نگاشت دارد.
به عنوان مثال، فرض کنید مقدار کلید John و مقدار شماره تلفن است، بنابراین وقتی مقدار کلید را در تابع هش به صورت زیر ارسال می کنیم:
Hash(key)= index;
وقتی کلید را در تابع هش پاس می دهیم، ایندکس را می دهد.
Hash(john) = 3;
مثال بالا جان را در شاخص 3 اضافه می کند.
اشکال تابع Hash
یک تابع Hash به هر مقدار یک کلید منحصر به فرد اختصاص می دهد. گاهی اوقات جدول هش از یک تابع هش ناقص استفاده می کند که باعث برخورد می شود زیرا تابع هش کلید یکسانی با دو مقدار متفاوت تولید می کند.
📣👨💻 @AlgorithmDesign_DataStructuer
جدول هش یکی از مهم ترین ساختارهای داده است که از یک تابع خاص به نام تابع هش استفاده می کند که یک مقدار داده شده را با یک کلید برای دسترسی سریعتر به عناصر ترسیم می کند.
جدول هش یک ساختار داده ای است که برخی از اطلاعات را ذخیره می کند و اطلاعات اساساً دارای دو جزء اصلی است، یعنی کلید و مقدار. جدول هش را می توان با کمک یک آرایه انجمنی پیاده سازی کرد. کارایی نگاشت بستگی به کارایی تابع هش مورد استفاده برای نگاشت دارد.
به عنوان مثال، فرض کنید مقدار کلید John و مقدار شماره تلفن است، بنابراین وقتی مقدار کلید را در تابع هش به صورت زیر ارسال می کنیم:
Hash(key)= index;
وقتی کلید را در تابع هش پاس می دهیم، ایندکس را می دهد.
Hash(john) = 3;
مثال بالا جان را در شاخص 3 اضافه می کند.
اشکال تابع Hash
یک تابع Hash به هر مقدار یک کلید منحصر به فرد اختصاص می دهد. گاهی اوقات جدول هش از یک تابع هش ناقص استفاده می کند که باعث برخورد می شود زیرا تابع هش کلید یکسانی با دو مقدار متفاوت تولید می کند.
📣👨💻 @AlgorithmDesign_DataStructuer
🙏5👨💻1
🤔2🎉2👨💻2👍1
Radix sort
در این اینجا به الگوریتم مرتب سازی Radix می پردازیم. مرتبسازی رادیکس الگوریتم
مرتبسازی خطی است که برای اعداد صحیح استفاده میشود. در مرتبسازی رادیکس، مرتبسازی رقم به رقم انجام میشود که از کمترین رقم به مهمترین رقم آغاز میشود.
فرآیند مرتبسازی ریشهای مانند مرتبسازی اسامی دانشآموزان بر اساس ترتیب حروف الفبا عمل میکند. در این مورد، 26 ریشه به دلیل 26 الفبای انگلیسی تشکیل شده است. در پاس اول، اسامی دانش آموزان بر اساس ترتیب صعودی حرف اول نام آنها گروه بندی می شود. پس از آن در پاس دوم نام آنها بر اساس ترتیب صعودی حرف دوم نامشان گروه بندی می شود. و این روند تا زمانی ادامه می یابد که لیست مرتب شده را پیدا کنیم.
کار الگوریتم مرتب سازی Radix
حالا بیایید کار الگوریتم مرتب سازی Radix را ببینیم.
مراحل مورد استفاده در مرتب سازی مرتب سازی ریشه به شرح زیر است:
ابتدا باید بزرگترین عنصر (فرض کنید max) را از آرایه داده شده پیدا کنیم. فرض کنید 'x' تعداد ارقام در حداکثر باشد. 'x' محاسبه می شود زیرا ما باید از مکان های مهم همه عناصر عبور کنیم.
پس از آن، یک به یک از هر مکان مهم عبور کنید. در اینجا، ما باید از هر الگوریتم مرتبسازی پایدار برای مرتبسازی ارقام هر مکان مهم استفاده کنیم.
در آرایه داده شده، بزرگترین عنصر 736 است که دارای 3 رقم است. بنابراین، حلقه تا سه بار اجرا می شود (یعنی به مکان صدها). این بدان معناست که برای مرتب سازی آرایه سه پاس لازم است.
اکنون، ابتدا عناصر را بر اساس ارقام مکان واحد (یعنی x = 0) مرتب کنید. در اینجا، ما از الگوریتم مرتب سازی شمارش برای مرتب سازی عناصر استفاده می کنیم.
📣👨💻 @AlgorithmDesign_DataStructuer
در این اینجا به الگوریتم مرتب سازی Radix می پردازیم. مرتبسازی رادیکس الگوریتم
مرتبسازی خطی است که برای اعداد صحیح استفاده میشود. در مرتبسازی رادیکس، مرتبسازی رقم به رقم انجام میشود که از کمترین رقم به مهمترین رقم آغاز میشود.
فرآیند مرتبسازی ریشهای مانند مرتبسازی اسامی دانشآموزان بر اساس ترتیب حروف الفبا عمل میکند. در این مورد، 26 ریشه به دلیل 26 الفبای انگلیسی تشکیل شده است. در پاس اول، اسامی دانش آموزان بر اساس ترتیب صعودی حرف اول نام آنها گروه بندی می شود. پس از آن در پاس دوم نام آنها بر اساس ترتیب صعودی حرف دوم نامشان گروه بندی می شود. و این روند تا زمانی ادامه می یابد که لیست مرتب شده را پیدا کنیم.
کار الگوریتم مرتب سازی Radix
حالا بیایید کار الگوریتم مرتب سازی Radix را ببینیم.
مراحل مورد استفاده در مرتب سازی مرتب سازی ریشه به شرح زیر است:
ابتدا باید بزرگترین عنصر (فرض کنید max) را از آرایه داده شده پیدا کنیم. فرض کنید 'x' تعداد ارقام در حداکثر باشد. 'x' محاسبه می شود زیرا ما باید از مکان های مهم همه عناصر عبور کنیم.
پس از آن، یک به یک از هر مکان مهم عبور کنید. در اینجا، ما باید از هر الگوریتم مرتبسازی پایدار برای مرتبسازی ارقام هر مکان مهم استفاده کنیم.
در آرایه داده شده، بزرگترین عنصر 736 است که دارای 3 رقم است. بنابراین، حلقه تا سه بار اجرا می شود (یعنی به مکان صدها). این بدان معناست که برای مرتب سازی آرایه سه پاس لازم است.
اکنون، ابتدا عناصر را بر اساس ارقام مکان واحد (یعنی x = 0) مرتب کنید. در اینجا، ما از الگوریتم مرتب سازی شمارش برای مرتب سازی عناصر استفاده می کنیم.
📣👨💻 @AlgorithmDesign_DataStructuer
👨💻4
👨💻1
منظور از Threaded Binary Tree چیست؟
در نمایش پیوندی درختان باینری، بیش از نیمی از فیلدهای پیوند حاوی مقادیر NULL هستند که منجر به هدر رفتن فضای ذخیره سازی می شود. اگر یک درخت باینری از n گره تشکیل شده باشد، n+1 فیلد پیوند حاوی مقادیر NULL است. بنابراین به منظور مدیریت موثر فضا، روشی توسط Perlis و Thornton ابداع شد که در آن پیوندهای NULL با پیوندهای خاصی به نام نخ جایگزین می شوند. این گونه درختان دوتایی با نخ به عنوان درختان دودویی رشته ای شناخته می شوند. هر گره در یک درخت دودویی رشته ای یا حاوی پیوندی به گره فرزند خود یا رشته ای به گره های دیگر در درخت است.
📣👨💻 @AlgorithmDesign_DataStructuer
در نمایش پیوندی درختان باینری، بیش از نیمی از فیلدهای پیوند حاوی مقادیر NULL هستند که منجر به هدر رفتن فضای ذخیره سازی می شود. اگر یک درخت باینری از n گره تشکیل شده باشد، n+1 فیلد پیوند حاوی مقادیر NULL است. بنابراین به منظور مدیریت موثر فضا، روشی توسط Perlis و Thornton ابداع شد که در آن پیوندهای NULL با پیوندهای خاصی به نام نخ جایگزین می شوند. این گونه درختان دوتایی با نخ به عنوان درختان دودویی رشته ای شناخته می شوند. هر گره در یک درخت دودویی رشته ای یا حاوی پیوندی به گره فرزند خود یا رشته ای به گره های دیگر در درخت است.
📣👨💻 @AlgorithmDesign_DataStructuer
👌4👍1👨💻1
👨💻4🔥2
🤔5👍3👨💻1
Algorithm design & data structure
Photo
گزینه 4 : نیاز به پیمایش دارد تا آدرس گره ماقبل آخر بدست آیـد کـه مرتبـه آن O(n)می شود.
#پاسخ_تشریحی
#پاسخ_تشریحی
👌4👨💻1
👍4👨💻1
👍5👨💻1