www.learning98.ir 09129474161 info[at]learning98.ir
0

سبد خرید

پروژه برنامه نویسی Insertion Sort ( مرتب سازی درجی ) به زبان سی پلاس پلاس

۱۰۰,۰۰۰ ریال

پروژه برنامه نویسی Insertion Sort ( مرتب سازی درجی ) به زبان سی پلاس پلاس

سورس کد پروژه برنامه نویسی Insertion Sort ( مرتب سازی درجی ) به زبان سی پلاس پلاس در محیط کنسول

پروژه ی دانشجویی درس برنامه نویسی نرم افزار در مقطع کارشناسی رشته ی مهندسی کامپیوتر و مهندسی فناوری اطلاعات ( IT )

 

شرح پروژه:
برنامه ای به زبان سی پلاس پلاس و در محیط کنسول بنویسید که آرایه ای از اعداد را با استفاده از روش مرتب سازی درجی مرتب کند. خروجی برنامه باید شامل اعضای آرایه قبل و بعد از مرتب سازی باشد. 

 

لینک مفید:
دانلود نرم افزار ویژوال استودیو + آموزش نصب نرم افزار ویژوال استودیو + ایجاد اولین پروژه برنامه نویسی به زبان سی پلاس پلاس در نرم افزار ویژوال استودیو

 

معرفی مرتب سازی درجی:

مرتب‌ساز درجی (Insertion Sort) یک الگوریتم مرتب‌سازی ساده بر مبنای مقایسه است. این الگوریتم برای تعداد داده‌های زیاد، کارآمد نیست و در این موارد، الگوریتم‌های بهتری مثل مرتب‌ساز سریع، مرتب‌ساز ادغامی و مرتب‌ساز پشته وجود دارد.

مزایا

این الگوریتم، بعضی مزایا هم دارد:

  • پیاده‌سازی آن راحت است.
  • برای داده‌های کم، کارآمدتر است.
  • برای مرتب‌سازی مجموعه دادههای تقریباً مرتب شده، کارآمد است: اگر تعداد وارونگی‌ها، d باشد، این الگوریتم دارای زمان اجرای (O(n + d خواهد بود.
  • در عمل از بسیاری از الگوریتم‌های (O(n۲‎ مثل مرتب‌ساز انتخابی یا مرتب‌ساز حبابی، بهتر عمل می‌کند: متوسط زمان اجرای آن هم، (O(n۲ است که در بهترین حالت، خطی است.
  • پایدار است. (ترتیب نسبی عناصر یکسان را حفظ می‌کند)
  • درجا است. (حافظه اضافی ثابت، (O(۱‎ لازم دارد)
  • یک الگوریتم برخط است. یعنی یک لیست را به محض دریافت کردن، مرتب می‌کند.

الگوریتم

این الگوریتم به این صورت عمل می‌کند که تمام عناصر لیست را یکی یکی برمی‌دارد و آن را در موقعیت مناسب در بخش مرتب شده قرار می‌دهد. انتخاب عنصر مورد نظر، اختیاری است و می‌تواند توسط هر الگوریتم انتخابی، انتخاب شود. مرتب‌سازی درجی به صورت درجا عمل می‌کند. نتیجه عمل بعد از k مرحله، حاوی k عنصر انتخاب شده به صورت مرتب شده‌است.

معمول‌ترین نسخه از این الگوریتم که روی آرایه‌ها عمل می‌کند، به این صورت است:

  1. فرض کنید یک تابع به اسم Insert داریم که داده را در بخش مرتب شده در ابتدای آرایه درج می‌کند. این تابع با شروع از انتهای سری شروع به کار می‌کند و هر عنصر را به سمت راست منتقل می‌کند تا وقتی که جای مناسب برای عنصر جدید پیدا شود. این تابع این اثر جانبی را دارد که عنصر دقیقاً بعد از بخش مرتب شده را رونویسی می‌کند.
  2. برای اعمال مرتب‌ساز درجی، از انتهای سمت چپ آرایه شروع می‌کنیم و با صدا زدن تابع insert، هر عنصر را به موقعیت درستش می‌بریم. آن بخشی که عنصر فعلی را در آن می‌کنیم، در ابتدای آرایه و در اندیس‌هایی است که آن‌ها را قبلاً آزمایش کرده‌ایم. هر بار صدا زدن تابع insert، یک عنصر را رونویسی می‌کند، اما این مسئله مشکلی ایجاد نمی‌کند، زیرا این داده، همانی است که الان در حال درج آن هستیم.

ورودی‌های خوب و بد

بهترین حالت زمانی است که آرایه از قبل مرتب شده باشد. در این حالت زمان اجرای الگوریتم از (O(n‎ است: در هر مرحله اولین عنصر باقی‌مانده از لیست اولیه فقط با آخرین عنصر لیست مرتب شده مقایسه می‌شود. این حالت بدترین حالت برای مرتب‌ساز سریع (غیرتصادفی و با پیاده‌سازی ضعیف) است که زمان (O(n۲‎ صرف می‌کند. بدترین حالت این الگوریتم، زمانی است که آرایه به صورت معکوس مرتب شده باشد. در این حالت هر اجرای حلقه داخلی، مجبور است که تمام بخش مرتب شده را بررسی کرده و انتقال دهد. در این زمان اجرای الگوریتم، مثل حالت متوسط، دارای زمان اجرای (O(n۲‎ است که باعث می‌شود استفاده از این الگوریتم برای مرتب‌سازی تعداد داده‌های زیاد، غیرعملی شود. گرچه حلقه داخلی مرتب‌ساز درجی، خیلی سریع است و این الگوریتم را به یکی از سریع‌ترین الگوریتم‌های مرتب‌سازی، برای تعداد داده‌های کم (معمولاً کمتر از ۱۰)، تبدیل می‌کند.

مقایسه با دیگر الگوریتم‌های مرتب‌سازی

مرتب‌سازی درجی بسیار شبیه به مرتب‌سازی انتخابی است. مانند مرتب‌سازی انتخابی، پس از k مرحله در آرایه، k عنصر اول در حالت مرتب شده قرار دارند. برای مرتب‌سازی انتخابی، آن عناصر، کوچترین k عنصر موجود در لیست هستند در حالیکه در مرتب‌سازی درجی، آن عناصرk عنصر اول از آرایه مرتب نشده هستند. مزیت مرتب‌سازی درجی این است که برای تشخیص مکان درست عنصر۱+kام، فقط عناصر مورد نیاز را بررسی می‌کند؛ درحالیکه مرتب‌سازی انتخابی باید همه عناصر باقی‌مانده را بررسی کند تا کوچکترین آن‌ها را پیدا کند. محاسبات نشان می‌دهد که مرتب‌سازی درجی معمولاً نصف تعداد مقایسه‌های مرتب‌سازی انتخابی را انجام می‌دهد. فرض کنید که اولویت عنصر ۱+kام تصادفی است. حال مرتب‌سازی درجی به‌طور متوسط باید نیمی از k عنصر مرتب شده را بررسی کند تا محل عنصر جدید را پیدا کند، درحالیکه مرتب‌سازی انتخابی همیشه نیازمند بررسی همه عناصر مرتب نشده است. اگر آرایه ورودی به‌طور معکوس مرتب شده باشد، مرتب‌سازی درجی به اندازه مرتب‌سازی انتخابی مقایسه انجام می‌دهد. اما اگر آرایه ورودی واقعاً مرتب شده است، مرتب‌سازی درجی ۱-n مقایسه کمتر انجام می‌دهد، بنابراین وقتی آرایه ورودی «تقریباً مرتب شده» باشد، مرتب‌سازی درجی بهینه تر عمل می‌کند. درحالیکه مرتب‌سازی درجی معمولاً تعداد مقایسه‌های کمتری از مرتب‌سازی انتخابی انجام می‌دهد، نیازمند نوشتن‌های بیشتر است چون حلقه داخلی ممکن است به جابجا کردن بخش‌های زیادی از بخش مرتب شده نیاز داشته باشد. در حالت کلی، مرتب‌سازی درجی در آرایه O(n۲)‎ بار عمل نوشتن انجام می‌دهد؛ درحالیکه مرتب‌سازی انتخابی تنها (‎O(n بار می‌نویسد. به همین دلیل مرتب‌سازی انتخابی در مواردی که نوشتن در حافظه نیازمند هزینه زیادی باشد، سریعتر عمل می‌کند مانند نوشتن در EEPROM یا حافظه فلش. برخی الگوریتم‌های تقسیم و حل مثل مرتب‌سازی سریع یا مرتب‌سازی ادغام با تقسیم کردن لیست به صورت بازگشتی به زیر لیست‌های مرتب شده، عمل مرتب‌سازی را انجام می‌دهند. در عمل یک راه بهینه‌سازی برای این الگوریتم‌ها این است که مرتب‌سازی درجی را برای مرتب کردن زیر لیست‌های کوچک استفاده کنیم که در کل موجب سریعتر شدن عملیات می‌شود. سایز لیستی که برای آن، مرتب‌سازی درجی مزیت بیشتری از سایر انواع مرتب‌سازی‌ها دارد، با توجه به پیاده‌سازی و محیط تغییر می‌کند اما معمولاً بین هشت تا بیست عنصر است.

نسخه‌های مختلف

D.L. Shell این الگوریتم را بهبود بخشید که نسخه بهبود داده شده آن، مرتب‌سازی شل نامیده می‌شود. این الگوریتم مرتب‌سازی، عناصر را با فاصله‌ای که در هر مرحله کم می‌شود، مقایسه می‌کند. مرتب‌سازی شل به‌طور قابل توجهی مراحل اجرا را در کار عملی ارتقا داده است که در دو نسخه مختلف، با زمان اجرای O(n۳/۲)‎ و O(n۴/۳)‎ عمل می‌کند. اگر هزینه مقایسه‌ها از هزینه جابجایی بیشتر باشد، مانند حالتی که لیست ورودی مرتب شده باشد، استفاده کردن از مرتب‌سازی درجی دودویی عملکرد بهتری خواهد داشت. مرتب‌سازی درجی دودویی از جستجوی دودویی استفاده می‌کند تا محل مناسب برای قرار دادن عنصر جدید را پیدا کند و بنابراین در بدترین حالت {\displaystyle \lceil log_{2}(n!)\rceil } مقایسه انجام می‌دهد که Θ(n log n)‎ است. الگوریتم در حالت میانگین بخاطر مجموعه جابجایی‌هایی که برای هر درج لازم است، زمان اجرای Θ(n۲)‎ دارد. در بهترین حالت نیز زمان اجرای آن طولانی تر Ω(n log n)‎ نیست. برای پیشگیری کردن از مجموعه‌ای از جابجایی‌ها برای هر درج، ورودی می‌تواند در یک لیست پیوندی مرتب شود که امکان می‌دهد عناصر در زمان ثابت درج یا حذف شوند. البته اجرای جستجوی دودویی در یک لیست پیوندی غیرممکن است چون یک لیست پیوندی دسترسی تصادفی به عناصر را پشتیبانی نمی‌کند؛ بنابراین زمان اجرا برای جستجو O(n۲)‎ است. اگر یک ساختمان داده‌های پیچیده تر مانند هرم استفاده شود، زمان مورد استفاده برای جستجو و درج به‌طور قابل ملاحظه‌ای کاهش می‌یابد.

 

آکادمی آنلاین learning98.ir دانلود سورس کد پروژه های برنامه نویسی | حل المسائل سی پلاس پلاس و آموزش برنامه نویسی c
آکادمی آنلاین learning98.ir
دانلود سورس کد پروژه های برنامه نویسی | حل المسائل سی پلاس پلاس و آموزش برنامه نویسی c

C++, c++, C, c٬ c plus plus٬ cin٬ clrscr٬ code٬ conio٬ conio.h٬ cout٬ cpp٬ define٬ download٬ file٬ for٬ getch٬ hardware٬ IDE٬ if٬ include٬ Information Technology٬ int٬ int main٬ iostream٬ iostream.h٬ IT٬ main٬ object oriented٬ programming٬ project٬ return٬ Reza Golmezerji٬ software٬ source٬ source code٬ std٬ student٬ university٬ university student٬ using namespace std٬ Visual Studio٬ آموزش٬ آموزش برنامه نویسی٬ آموزش برنامه نویسی سی٬ آموزش برنامه نویسی سی پلاس پلاس٬ آموزش کد نویسی٬ آموزش کد نویسی سی٬ آموزش کد نویسی سی پلاس پلاس٬ آموزش گام به گام برنامه نویسی به زبان سی پلاس پلاس در نرم افزار ویژوال استودیو٬ آموزش نصب نرم افزار ویژوال استودیو٬ آی تی٬ ایجاد اولین پروژه برنامه نویسی به زبان سی پلاس پلاس در نرم افزار ویژوال استودیو٬ برنامه نویسی٬ برنامه نویسی پیشرفته٬ برنامه نویسی کامپیوتر٬ پروژه٬ پروژه دانشجویی٬ پروژه دانشگاهی٬ حل المسائل سی پلاس پلاس٬ دانشجو٬ دانشجویان٬ دانشجویی٬ دانشگاه٬ دانلود٬ دانلود نرم افزار٬ دانلود نرم افزار ویژوال استودیو٬ رشته فناوری اطلاعات٬ رشته کامپیوتر٬ رضا گل مزرجی٬ سخت افزار٬ سورس٬ سورس کد٬ سورس کد پروژه های برنامه نویسی رشته کامپیوتر٬ سی٬ سی پلاس پلاس٬ شی گرا٬ شی گرایی٬ فایل٬ فناوری اطلاعات٬ کامپایلر٬ کامپیوتر٬ کد٬ کد نویسی٬ کدنویسی٬ مبانی برنامه نویسی٬ مهندسی٬ مهندسی فناوری اطلاعات٬ مهندسی کامپیوتر٬ نرم افزار٬ ویرایشگر ,C++, c++, C, c٬ c plus plus٬ cin٬ clrscr٬ code٬ conio٬ conio.h٬ cout٬ cpp٬ define٬ download٬ file٬ for٬ getch٬ hardware٬ IDE٬ if٬ include٬ Information Technology٬ int٬ int main٬ iostream٬ iostream.h٬ IT٬ main٬ object oriented٬ programming٬ project٬ return٬ Reza Golmezerji٬ software٬ source٬ source code٬ std٬ student٬ university٬ university student٬ using namespace std٬ Visual Studio٬ آموزش٬ آموزش برنامه نویسی٬ آموزش برنامه نویسی سی٬ آموزش برنامه نویسی سی پلاس پلاس٬ آموزش کد نویسی٬ آموزش کد نویسی سی٬ آموزش کد نویسی سی پلاس پلاس٬ آموزش گام به گام برنامه نویسی به زبان سی پلاس پلاس در نرم افزار ویژوال استودیو٬ آموزش نصب نرم افزار ویژوال استودیو٬ آی تی٬ ایجاد اولین پروژه برنامه نویسی به زبان سی پلاس پلاس در نرم افزار ویژوال استودیو٬ برنامه نویسی٬ برنامه نویسی پیشرفته٬ برنامه نویسی کامپیوتر٬ پروژه٬ پروژه دانشجویی٬ پروژه دانشگاهی٬ حل المسائل سی پلاس پلاس٬ دانشجو٬ دانشجویان٬ دانشجویی٬ دانشگاه٬ دانلود٬ دانلود نرم افزار٬ دانلود نرم افزار ویژوال استودیو٬ رشته فناوری اطلاعات٬ رشته کامپیوتر٬ رضا گل مزرجی٬ سخت افزار٬ سورس٬ سورس کد٬ سورس کد پروژه های برنامه نویسی رشته کامپیوتر٬ سی٬ سی پلاس پلاس٬ شی گرا٬ شی گرایی٬ فایل٬ فناوری اطلاعات٬ کامپایلر٬ کامپیوتر٬ کد٬ کد نویسی٬ کدنویسی٬ مبانی برنامه نویسی٬ مهندسی٬ مهندسی فناوری اطلاعات٬ مهندسی کامپیوتر٬ نرم افزار٬ ویرایشگر

http://learning98.ir/ http://freshfile.ir/ http://techexpert.ir/ https://freshfile.sellfile.ir/ http://kishtehransar.ir/ http://golmezerji.ir/ http://kohanzsanat.ir/ http://laserz.ir/ http://panizacademy.ir/ https://cafebazaar.ir/app/ir.techexpert.taeensath

دسته: برچسب: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

توضیحات

پروژه برنامه نویسی Insertion Sort ( مرتب سازی درجی ) به زبان سی پلاس پلاس

سورس کد پروژه برنامه نویسی Insertion Sort ( مرتب سازی درجی ) به زبان سی پلاس پلاس در محیط کنسول

پروژه ی دانشجویی درس برنامه نویسی نرم افزار در مقطع کارشناسی رشته ی مهندسی کامپیوتر و مهندسی فناوری اطلاعات ( IT )

 

شرح پروژه:
برنامه ای به زبان سی پلاس پلاس و در محیط کنسول بنویسید که آرایه ای از اعداد را با استفاده از روش مرتب سازی درجی مرتب کند. خروجی برنامه باید شامل اعضای آرایه قبل و بعد از مرتب سازی باشد. 

پروژه برنامه نویسی Insertion Sort ( مرتب سازی درجی ) به زبان سی پلاس پلاس

لینک مفید:
دانلود نرم افزار ویژوال استودیو + آموزش نصب نرم افزار ویژوال استودیو + ایجاد اولین پروژه برنامه نویسی به زبان سی پلاس پلاس در نرم افزار ویژوال استودیو

پروژه برنامه نویسی Insertion Sort ( مرتب سازی درجی ) به زبان سی پلاس پلاس

معرفی مرتب سازی درجی:

مرتب‌ساز درجی (Insertion Sort) یک الگوریتم مرتب‌سازی ساده بر مبنای مقایسه است. این الگوریتم برای تعداد داده‌های زیاد، کارآمد نیست و در این موارد، الگوریتم‌های بهتری مثل مرتب‌ساز سریع، مرتب‌ساز ادغامی و مرتب‌ساز پشته وجود دارد.

مزایا

این الگوریتم، بعضی مزایا هم دارد:

  • پیاده‌سازی آن راحت است.
  • برای داده‌های کم، کارآمدتر است.
  • برای مرتب‌سازی مجموعه دادههای تقریباً مرتب شده، کارآمد است: اگر تعداد وارونگی‌ها، d باشد، این الگوریتم دارای زمان اجرای (O(n + d خواهد بود.
  • در عمل از بسیاری از الگوریتم‌های (O(n۲‎ مثل مرتب‌ساز انتخابی یا مرتب‌ساز حبابی، بهتر عمل می‌کند: متوسط زمان اجرای آن هم، (O(n۲ است که در بهترین حالت، خطی است.
  • پایدار است. (ترتیب نسبی عناصر یکسان را حفظ می‌کند)
  • درجا است. (حافظه اضافی ثابت، (O(۱‎ لازم دارد)
  • یک الگوریتم برخط است. یعنی یک لیست را به محض دریافت کردن، مرتب می‌کند.

الگوریتم

این الگوریتم به این صورت عمل می‌کند که تمام عناصر لیست را یکی یکی برمی‌دارد و آن را در موقعیت مناسب در بخش مرتب شده قرار می‌دهد. انتخاب عنصر مورد نظر، اختیاری است و می‌تواند توسط هر الگوریتم انتخابی، انتخاب شود. مرتب‌سازی درجی به صورت درجا عمل می‌کند. نتیجه عمل بعد از k مرحله، حاوی k عنصر انتخاب شده به صورت مرتب شده‌است.

معمول‌ترین نسخه از این الگوریتم که روی آرایه‌ها عمل می‌کند، به این صورت است:

  1. فرض کنید یک تابع به اسم Insert داریم که داده را در بخش مرتب شده در ابتدای آرایه درج می‌کند. این تابع با شروع از انتهای سری شروع به کار می‌کند و هر عنصر را به سمت راست منتقل می‌کند تا وقتی که جای مناسب برای عنصر جدید پیدا شود. این تابع این اثر جانبی را دارد که عنصر دقیقاً بعد از بخش مرتب شده را رونویسی می‌کند.
  2. برای اعمال مرتب‌ساز درجی، از انتهای سمت چپ آرایه شروع می‌کنیم و با صدا زدن تابع insert، هر عنصر را به موقعیت درستش می‌بریم. آن بخشی که عنصر فعلی را در آن می‌کنیم، در ابتدای آرایه و در اندیس‌هایی است که آن‌ها را قبلاً آزمایش کرده‌ایم. هر بار صدا زدن تابع insert، یک عنصر را رونویسی می‌کند، اما این مسئله مشکلی ایجاد نمی‌کند، زیرا این داده، همانی است که الان در حال درج آن هستیم.

ورودی‌های خوب و بد

بهترین حالت زمانی است که آرایه از قبل مرتب شده باشد. در این حالت زمان اجرای الگوریتم از (O(n‎ است: در هر مرحله اولین عنصر باقی‌مانده از لیست اولیه فقط با آخرین عنصر لیست مرتب شده مقایسه می‌شود. این حالت بدترین حالت برای مرتب‌ساز سریع (غیرتصادفی و با پیاده‌سازی ضعیف) است که زمان (O(n۲‎ صرف می‌کند. بدترین حالت این الگوریتم، زمانی است که آرایه به صورت معکوس مرتب شده باشد. در این حالت هر اجرای حلقه داخلی، مجبور است که تمام بخش مرتب شده را بررسی کرده و انتقال دهد. در این زمان اجرای الگوریتم، مثل حالت متوسط، دارای زمان اجرای (O(n۲‎ است که باعث می‌شود استفاده از این الگوریتم برای مرتب‌سازی تعداد داده‌های زیاد، غیرعملی شود. گرچه حلقه داخلی مرتب‌ساز درجی، خیلی سریع است و این الگوریتم را به یکی از سریع‌ترین الگوریتم‌های مرتب‌سازی، برای تعداد داده‌های کم (معمولاً کمتر از ۱۰)، تبدیل می‌کند.

مقایسه با دیگر الگوریتم‌های مرتب‌سازی

مرتب‌سازی درجی بسیار شبیه به مرتب‌سازی انتخابی است. مانند مرتب‌سازی انتخابی، پس از k مرحله در آرایه، k عنصر اول در حالت مرتب شده قرار دارند. برای مرتب‌سازی انتخابی، آن عناصر، کوچترین k عنصر موجود در لیست هستند در حالیکه در مرتب‌سازی درجی، آن عناصرk عنصر اول از آرایه مرتب نشده هستند. مزیت مرتب‌سازی درجی این است که برای تشخیص مکان درست عنصر۱+kام، فقط عناصر مورد نیاز را بررسی می‌کند؛ درحالیکه مرتب‌سازی انتخابی باید همه عناصر باقی‌مانده را بررسی کند تا کوچکترین آن‌ها را پیدا کند. محاسبات نشان می‌دهد که مرتب‌سازی درجی معمولاً نصف تعداد مقایسه‌های مرتب‌سازی انتخابی را انجام می‌دهد. فرض کنید که اولویت عنصر ۱+kام تصادفی است. حال مرتب‌سازی درجی به‌طور متوسط باید نیمی از k عنصر مرتب شده را بررسی کند تا محل عنصر جدید را پیدا کند، درحالیکه مرتب‌سازی انتخابی همیشه نیازمند بررسی همه عناصر مرتب نشده است. اگر آرایه ورودی به‌طور معکوس مرتب شده باشد، مرتب‌سازی درجی به اندازه مرتب‌سازی انتخابی مقایسه انجام می‌دهد. اما اگر آرایه ورودی واقعاً مرتب شده است، مرتب‌سازی درجی ۱-n مقایسه کمتر انجام می‌دهد، بنابراین وقتی آرایه ورودی «تقریباً مرتب شده» باشد، مرتب‌سازی درجی بهینه تر عمل می‌کند. درحالیکه مرتب‌سازی درجی معمولاً تعداد مقایسه‌های کمتری از مرتب‌سازی انتخابی انجام می‌دهد، نیازمند نوشتن‌های بیشتر است چون حلقه داخلی ممکن است به جابجا کردن بخش‌های زیادی از بخش مرتب شده نیاز داشته باشد. در حالت کلی، مرتب‌سازی درجی در آرایه O(n۲)‎ بار عمل نوشتن انجام می‌دهد؛ درحالیکه مرتب‌سازی انتخابی تنها (‎O(n بار می‌نویسد. به همین دلیل مرتب‌سازی انتخابی در مواردی که نوشتن در حافظه نیازمند هزینه زیادی باشد، سریعتر عمل می‌کند مانند نوشتن در EEPROM یا حافظه فلش. برخی الگوریتم‌های تقسیم و حل مثل مرتب‌سازی سریع یا مرتب‌سازی ادغام با تقسیم کردن لیست به صورت بازگشتی به زیر لیست‌های مرتب شده، عمل مرتب‌سازی را انجام می‌دهند. در عمل یک راه بهینه‌سازی برای این الگوریتم‌ها این است که مرتب‌سازی درجی را برای مرتب کردن زیر لیست‌های کوچک استفاده کنیم که در کل موجب سریعتر شدن عملیات می‌شود. سایز لیستی که برای آن، مرتب‌سازی درجی مزیت بیشتری از سایر انواع مرتب‌سازی‌ها دارد، با توجه به پیاده‌سازی و محیط تغییر می‌کند اما معمولاً بین هشت تا بیست عنصر است.

نسخه‌های مختلف

D.L. Shell این الگوریتم را بهبود بخشید که نسخه بهبود داده شده آن، مرتب‌سازی شل نامیده می‌شود. این الگوریتم مرتب‌سازی، عناصر را با فاصله‌ای که در هر مرحله کم می‌شود، مقایسه می‌کند. مرتب‌سازی شل به‌طور قابل توجهی مراحل اجرا را در کار عملی ارتقا داده است که در دو نسخه مختلف، با زمان اجرای O(n۳/۲)‎ و O(n۴/۳)‎ عمل می‌کند. اگر هزینه مقایسه‌ها از هزینه جابجایی بیشتر باشد، مانند حالتی که لیست ورودی مرتب شده باشد، استفاده کردن از مرتب‌سازی درجی دودویی عملکرد بهتری خواهد داشت. مرتب‌سازی درجی دودویی از جستجوی دودویی استفاده می‌کند تا محل مناسب برای قرار دادن عنصر جدید را پیدا کند و بنابراین در بدترین حالت {\displaystyle \lceil log_{2}(n!)\rceil } مقایسه انجام می‌دهد که Θ(n log n)‎ است. الگوریتم در حالت میانگین بخاطر مجموعه جابجایی‌هایی که برای هر درج لازم است، زمان اجرای Θ(n۲)‎ دارد. در بهترین حالت نیز زمان اجرای آن طولانی تر Ω(n log n)‎ نیست. برای پیشگیری کردن از مجموعه‌ای از جابجایی‌ها برای هر درج، ورودی می‌تواند در یک لیست پیوندی مرتب شود که امکان می‌دهد عناصر در زمان ثابت درج یا حذف شوند. البته اجرای جستجوی دودویی در یک لیست پیوندی غیرممکن است چون یک لیست پیوندی دسترسی تصادفی به عناصر را پشتیبانی نمی‌کند؛ بنابراین زمان اجرا برای جستجو O(n۲)‎ است. اگر یک ساختمان داده‌های پیچیده تر مانند هرم استفاده شود، زمان مورد استفاده برای جستجو و درج به‌طور قابل ملاحظه‌ای کاهش می‌یابد.

 

آکادمی آنلاین learning98.ir دانلود سورس کد پروژه های برنامه نویسی | حل المسائل سی پلاس پلاس و آموزش برنامه نویسی c
آکادمی آنلاین learning98.ir
دانلود سورس کد پروژه های برنامه نویسی | حل المسائل سی پلاس پلاس و آموزش برنامه نویسی c

C++, c++, C, c٬ c plus plus٬ cin٬ clrscr٬ code٬ conio٬ conio.h٬ cout٬ cpp٬ define٬ download٬ file٬ for٬ getch٬ hardware٬ IDE٬ if٬ include٬ Information Technology٬ int٬ int main٬ iostream٬ iostream.h٬ IT٬ main٬ object oriented٬ programming٬ project٬ return٬ Reza Golmezerji٬ software٬ source٬ source code٬ std٬ student٬ university٬ university student٬ using namespace std٬ Visual Studio٬ آموزش٬ آموزش برنامه نویسی٬ آموزش برنامه نویسی سی٬ آموزش برنامه نویسی سی پلاس پلاس٬ آموزش کد نویسی٬ آموزش کد نویسی سی٬ آموزش کد نویسی سی پلاس پلاس٬ آموزش گام به گام برنامه نویسی به زبان سی پلاس پلاس در نرم افزار ویژوال استودیو٬ آموزش نصب نرم افزار ویژوال استودیو٬ آی تی٬ ایجاد اولین پروژه برنامه نویسی به زبان سی پلاس پلاس در نرم افزار ویژوال استودیو٬ برنامه نویسی٬ برنامه نویسی پیشرفته٬ برنامه نویسی کامپیوتر٬ پروژه٬ پروژه دانشجویی٬ پروژه دانشگاهی٬ حل المسائل سی پلاس پلاس٬ دانشجو٬ دانشجویان٬ دانشجویی٬ دانشگاه٬ دانلود٬ دانلود نرم افزار٬ دانلود نرم افزار ویژوال استودیو٬ رشته فناوری اطلاعات٬ رشته کامپیوتر٬ رضا گل مزرجی٬ سخت افزار٬ سورس٬ سورس کد٬ سورس کد پروژه های برنامه نویسی رشته کامپیوتر٬ سی٬ سی پلاس پلاس٬ شی گرا٬ شی گرایی٬ فایل٬ فناوری اطلاعات٬ کامپایلر٬ کامپیوتر٬ کد٬ کد نویسی٬ کدنویسی٬ مبانی برنامه نویسی٬ مهندسی٬ مهندسی فناوری اطلاعات٬ مهندسی کامپیوتر٬ نرم افزار٬ ویرایشگر ,C++, c++, C, c٬ c plus plus٬ cin٬ clrscr٬ code٬ conio٬ conio.h٬ cout٬ cpp٬ define٬ download٬ file٬ for٬ getch٬ hardware٬ IDE٬ if٬ include٬ Information Technology٬ int٬ int main٬ iostream٬ iostream.h٬ IT٬ main٬ object oriented٬ programming٬ project٬ return٬ Reza Golmezerji٬ software٬ source٬ source code٬ std٬ student٬ university٬ university student٬ using namespace std٬ Visual Studio٬ آموزش٬ آموزش برنامه نویسی٬ آموزش برنامه نویسی سی٬ آموزش برنامه نویسی سی پلاس پلاس٬ آموزش کد نویسی٬ آموزش کد نویسی سی٬ آموزش کد نویسی سی پلاس پلاس٬ آموزش گام به گام برنامه نویسی به زبان سی پلاس پلاس در نرم افزار ویژوال استودیو٬ آموزش نصب نرم افزار ویژوال استودیو٬ آی تی٬ ایجاد اولین پروژه برنامه نویسی به زبان سی پلاس پلاس در نرم افزار ویژوال استودیو٬ برنامه نویسی٬ برنامه نویسی پیشرفته٬ برنامه نویسی کامپیوتر٬ پروژه٬ پروژه دانشجویی٬ پروژه دانشگاهی٬ حل المسائل سی پلاس پلاس٬ دانشجو٬ دانشجویان٬ دانشجویی٬ دانشگاه٬ دانلود٬ دانلود نرم افزار٬ دانلود نرم افزار ویژوال استودیو٬ رشته فناوری اطلاعات٬ رشته کامپیوتر٬ رضا گل مزرجی٬ سخت افزار٬ سورس٬ سورس کد٬ سورس کد پروژه های برنامه نویسی رشته کامپیوتر٬ سی٬ سی پلاس پلاس٬ شی گرا٬ شی گرایی٬ فایل٬ فناوری اطلاعات٬ کامپایلر٬ کامپیوتر٬ کد٬ کد نویسی٬ کدنویسی٬ مبانی برنامه نویسی٬ مهندسی٬ مهندسی فناوری اطلاعات٬ مهندسی کامپیوتر٬ نرم افزار٬ ویرایشگر

http://learning98.ir/ http://freshfile.ir/ http://techexpert.ir/ https://freshfile.sellfile.ir/ http://kishtehransar.ir/ http://golmezerji.ir/ http://kohanzsanat.ir/ http://laserz.ir/ http://panizacademy.ir/ https://cafebazaar.ir/app/ir.techexpert.taeensath

توضیحات تکمیلی

دسته بندی

سورس کد پروژه های برنامه نویسی کامپیوتر و فناوری اطلاعات

مخاطب

دانشجویان و علاقه مندان به برنامه نویسی

کپی رایت

www.learning98.ir

فرمت فایل

ZIP

حجم فایل

264 KB

رمز فایل فشرده

www.learning98.ir

دیدگاهها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین نفری باشید که دیدگاهی را ارسال می کنید برای “پروژه برنامه نویسی Insertion Sort ( مرتب سازی درجی ) به زبان سی پلاس پلاس”

نشانی ایمیل شما منتشر نخواهد شد.