shell sort

تخصصی

[کامپیوتر] مرتب سازی Shell نوع دیگری از الگوریتم مرتب سازی درجی (نگاه کنید به insertion osrt ) . این نوع مرتب سازی نام خود را از Donald Shell ( مخترع آن ) گرفته است . این مرتب سازی مانند یک سری متب سازی های درجی است که در آن هر عنصر به جای آنکه با عنصر بعدی خود مقایسه شود، با عنصری که تعداد فاصله ی مشخصی با آن دارد، مقایسه می شود، در هر مرتبه مرتب سازی، این فاصله ( که یک عدد است ) کوچکتر می شود تا به 1 برسد . از این رو آخرین مرتب سازی به صورت یک مرتب سازی عادی درجی تبدیل می شود. مرتب سازی های اولیه زمان بیشتری صرف می کنند. مثلاً در یک فهرست 10 عنصری، ابتدا جفت عناصری که به اندازه ی 5 عنصر از هم فاصله دارند( یعنی عناصر 1و 6،2و7 ،3و8 ،...) بررسی می شوند. سپس عمل مرتب سازی با بررسی جفت عناصری که به اندازه دو عنصر از هم فاصله دارند، ادامه می یابد( یعنی عناصر 1و3،2و4،3و5 و...) . در نهایت، جفت عناصر کنار هم کنترل می شوند. شکل زیر یک برنامه ی پاسکال که 10 عدد را خوانده و مرتب سازی Shell را انجام می دهد، نشان داده است:

پیشنهاد کاربران

بپرس