تبليغاتX
㋡ از هــــر دری ســخــنــی ㋡ - آموزش های متفرقه برنامه نویسی

قالب وبلاگ

هاست لينوكس

مرجع راهنمای وبلاگ نویسان

سفارش طراحی اختصاصی قالب وب سايت و قالب وبلاگ

طراحي وب

 
..
 
   
   
  منوي اصلي
لينکهاي سريع

  موضوعات
..:+ پروفایل دانشگاه +:..
شخصی
فــــیــلـــم
کـلیـپ
آهـــنـــگ
فایــل های صــوتی
درسـی و کمک آموزشی
طراحی الگوریتم و سورس برنامه
++C & C
C#.NET
VB.NET
HTML
Java
AJAX
PHP
سایر زبان های برنامه نویسی
آموزش های متفرقه برنامه نویسی
پـایـــگـاه داده - Data Base
SQL
سایر برنامه های دیتا بیس
ایـنـتـرنـت
CISCO
MCITP
مبانی شبکه - Network plus
آموزش های متفرقه شبکه
سخت افزار - A Plus
نـــرم افـــــزار
Windows Server
Windows 7
Windows XP
Linux
Other OS
آموزش های متفرقه ویندوز
رجسیتری - Registry
هک و کرک - Hack & Crack
CEH
ECSA
فتوشاپ - Photoshop
تری دی مکس - 3Ds Max
کرل دراو - Corel Draw
سایر برنامه های گرافیک
آموزش های متفرقه گرافیک
Microsoft Office
مـوبــایــل
فـــرامــاســـونـــری
یهــــود شنــــاسی
آخـــــــر زمــــــان
ظــهــور و مـنــجـی
دجـــــــــال
دکتـر علی شـریعتی
دکتـر حسـن عباسی
علی اکبر رائفی پــور
ســیاسی
اســتـراتــژی
فرهنــگ و هـنــــر
اجــتــمــاعــی
اقتصـــــادی
نــــظامـــی
مـــذهـبـــی
مدیــریــت
ســـلامــــت
روانشناسی
ورزشـــی
عکس های جالـب
مطالب جالب و خواندنی
طنز و شوخی
..:: پیـــامــک ::..
شعــر و love
کتاب و مقــــالـه
آموزش
×× فروشـگاه ××
مطالب متفرقه

 

آرشیو ماهانه
بهمن 1390
دی 1390
آذر 1390
آبان 1390
مهر 1390
شهریور 1390
مرداد 1390
تیر 1390
خرداد 1390
اردیبهشت 1390
فروردین 1390
اسفند 1389
ادمه ی آرشیو ماهانه

        لينک دوستان

حرفه ای ترین قالب هاي وبلاگ
حامد شیربندی
وبلاگ استاد رائفی محقق در زمینه فراماسونری
آپدیت روزانه NOD32
اعجاز قرآن
چرا شیعه ؟ چرا سنی ؟
بانک مقالات
دانلود کتاب های ریاضی و فیزیک
سایت دکتر علی شریعتی
دانلود رایگان کتاب های صوتی
سایت جهاد دانشگاهی استان کرمانشاه
تکنولوژی برتر غرب
.::مهندسین نرم افزار دانشگاه آزاد::.
جنبش مصاف
سایت استاد کرمی
وبلاگ شخصی استاد کرمی
سربازان کوروش آریایی
هرچی میخوای اینجاهست
پیام نور کنگاور
رامین شکوهی
سجاد فتحی
سایت برنامه نویسان ایران
بچه های قلم
سعید شیربندی
کد آهنگ وبلاگ ( میهن کد )
وضعیت آب و هوای کرمانشاه در آینده
پاسخ به اتهام-اسلام و مسیحیت در دادگاه عقل و منطق
خبرگزاری تابناک
خبرگزاری جمهوری اسلامی ایران (ایرنا)
وبلاگ استاد اشرف
سجاد جلیلیان !
ضرب المثل ها و رازها
خمول
فیس آهنگ
سایت دکتر عباسی
شورش علیه طمع
آرشیو سخنرانیهای دکتر عباسی
علی قره باغی
ببین حال مارو !



لوگوی دوستان



 

تبلیغات


تبلیغات در سایت


  الگوريتم های مرتب سازی

الگوريتم های مرتب سازی

یک الگوریتم مرتب سازی الگوریتمی است که عناصر یک لیست را در ترتیب معینی قرار می دهد. کارائی مرتب سازی برای بهینه سازی کاربردهای الگوریتم های دیگر مانند جستجو و ادغام، که به لیست های مرتب نیاز دارند، اهمیت دارد. مرتب سازی برای تهیه خروجی های خوانا برای انسان نیز مفید است.

الگوریتم های مرتب سازی اغلب بر اساس زیر دسته بندی می شوند:

• پیچیدگی زمانی مقایسه عناصر برحسب اندازه لیست (n) . معمولا برای یک الگوریتم مرتب سازی عادی O(n log n) بهترین حالت و O(n2) بدترین حالت است. زمان ایده آل O(n) است.
• پیچیدگی زمانی تعداد جابه جائی ها برای الگوریتم های درجا (in place).
• مصرف حافظه (و استفاده از منابع دیگر سیستم). برخی از الگوریتم های مرتب سازی برون از جا (out place) هستند. که به محل کمکی برای نگهداری داده های موقت علاوه بر داده های در حال مرتب شدن نیاز دارند.
• بعضی از الگوریتم ها بازگشتی یا غیر بازگشتی یا هردو هستند.
• پايداری. الگوریتم های مرتب سازی پايدار ترتیب نسبی رکوردها با کلیدهای مساوی را برقرار می کنند. یعنی اگر دو رکورد R و S با یک کلید وجود داشته باشد و R قبل از S در لیست اصلی آمده باشد، در لیست مرتب شده هم R قبل از S می آید.
• متد کلی. روش مرتب سازی داده ها که می تواند درج،‌ تعویض، انتخاب، ادغام و غیره باشد. برای مثال مرتب سازی حبابی و سریع مرتب سازی تعویضی هستند.


مرتب سازی حبابی (bubble sort)

مرتب سازی حبابی (bubble sort) ساده ترین روش مرتب کردن داده ها می باشد.

مرتب سازی حبابی گام هائی را تکرار می کند تا داده های لیست مرتب شوند. در هر گاک دو عنصر با هم مقایسه می شوند و اگر ترتیب آنها درست نباشد با هم جابه جا می شوند. گام ها تا زمانی که کل لیست مرتب شود و جا به جائی موردنیاز نباشد تکرار می شود.

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

الگوریتم از ابتدای لیست شروع می کند. دو عنصر اول را مقایسه می کند، اگر اولی از دومی بزرگتر بود جای آنها عوض می شود. به همین ترتیب ادامه می دهد تا به انتهای لیست برسد. الگوریتم مجددا همین عمل را از ابتدای لیست تکرار می کند تا زمانی هیچ جا به جائی در آخرین گام صورت نگیرد.

با وجود سادگی این الگوریتم بسیار ناکارآمد است و به جز آموزش به ندرت در جاهای دیگر استفاده می شود.

پیاده سازی

شبه کد الگوریتم مرتب سازی حبابی به صورت زیر است:

for i:= 1 to n do
   for j:=n downto i+1 do
      if A[j-1] > A[j] then
         swap( A[j-1], A[j] )
      end if
   end for
end for

یک راه برای بهتر کردن الگوریتم فوق توجه به این نکته است که در هر مرحله بزرگترین عنصر به انتهای لیست منتقل می شود. یعنی هر بار یک عنصر در محل خود قرار می گیرد که در گام بعدی می توان آن را در نظر نگرفت. بنابراین برای یک لیست با n‌ عنصر در مرحله بعد نیاز به بررسی n-1 عنصر دیگر می باشد.

با توجه به اینکه ممکن است در مرحله ای کلیه عناصر در محل خود قرار بگیرند اگر جا به جائی در یک گام وجود نداشته باشد به معنی مرتب بودن لیست و خاتمه الگوریتم است.

شبه کد زیر الگوریتم بهینه شده مرتب سازی حبابی است:

do    swapped := false
   n := n-1
   for i:=0 to n do
      if A[i] > A[i+1] then
         swap( A[i], A[i+1] )
         swapped := true
      end if
   end for
while swapped


مثال. آرایه ای با عناصر "5 1 4 2 8" را در نظر بگیرید. گام های لازم برای مرتب سازی لیست به صورت صعودی به صورت زیر است. در هر مرحله عماصری که مقایسه می شوند پررنگ تر نشان داده شده اند.

First Pass
( 5 1 4 2 8 )—» ( 1 5 4 2 8 )
( 1 5 4 2 8 )—» ( 1 4 5 2 8 )
( 1 4 5 2 8 )—» ( 1 4 2 5 8 )
( 1 4 2 5 8 )—» ( 1 4 2 5 8 )
Second Pass
( 1 4 2 5 8 )—» ( 1 4 2 5 8 )
( 1 4 2 5 8 )—» ( 1 2 4 5 8 )
( 1 2 4 5 8 )—» (1 2 4 5 8 )
آرایه مرتب شده است اما الگوریتم به کار خود ادامه می دهد تا به مرحله ای برسد که هیچ جابه جائی صورت نمی گیرد. Third Pass
( 1 2 4 5 8 )—» ( 1 2 4 5 8 )
( 1 2 4 5 8 )—» ( 1 2 4 5 8 )
آرایه مرتب شده است و الگوریتم پایان می پذیرد.


ارزیابی کارائی

اگر n تعداد عناصر لیستی است که دارد مرتب می شود. در هر مرحله يک عنصر در محل خود قرار می گيرد که در مرحله بعد نياز به بررسی ندارد بنابراين تعداد کل مقايسه ها برابر با (n-1)+(n-2)+...+1 می شود. حاصل اين مجموع مساوی n(n-1)/2 است که پيچيدگی O(n2) را دارد. پيچيدگی در بهترين حالت O(n) است و زمانی اتفاق می افتد که داده های ليست از قبل مرتب باشد بنابراين حلقه do-while تنها يکبار اجرا می شود.


مرتب سازی انتخابی (selection sort)

مرتب سازی انتخابی (selection sort) روش بهبود يافته مرتب سازی حبابی است.

الگوريتم ابتدا کوچکترين عنصر را توسط جستجوی خطی پيدا می کند و آنرا در اولين محل ليست قرار می دهد، سپس دومين عنصر کوچک را پيدا می کند و به همين ترتيب تا آخر.

پیاده سازی

شبه کد الگوریتم مرتب سازی انتخابی به صورت زیر است:

for i:=0 to n-2 do
   min:=i
   for j:=(i + 1) to n-1 do
      if A[j] < A[min] then
         min:= j
      end if
   end for
   swap (A[i] , A[min])
end for


مثال. در زير مراحل مختلف برای مرتب کردن 5 عنصر "64 25 12 22 11" مشاهده می شود.

First Pass
(64 25 12 22 11) ( 11 25 12 22 64)
Second Pass
(11 25 12 22 64) ( 11 12 25 22 64)
Third Pass
(11 12 25 22 64) (11 12 22 25 64)
Forth Pass
(11 12 22 25 64) (11 12 22 25 64)


ارزیابی کارائی

در مقايسه با الگوريتم های ديگر مرتب سازی انتخابی، به دليل سادگی ساختار، صرف نظر از ترتيب داده های ليست هميشه يک زمان اجرا را می دهد. (n-1) جابه جائی در کل مورد نياز است که نسبت به مرتب سازی حبابی کمتر است و اگر تعداد جابه جائی ها مهم باشد مرتب سازی انتخابی روش مناسبی است. تعداد مقايسه ها در کل برابر است با (n-1)+(n-2)+…+1= Θ(n2).

مرتب سازی انتخابی برای ساختارهائی مانند ليست پيوندی که روش حذف و اضافه کارائی دارند سودمند است. در اين حالت کوچکترين عنصر از ليست حذف شده و سپس به انتهای مقاديری که قبلا مرتب شده اند اضافه می شود.

مثال.

64 25 12 22 11
11 64 25 12 22
11 12 64 25 22
11 12 22 64 25
11 12 22 25 64



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


توضیحات بدترين بهترین حافظه پایدار روش مرتب سازی  
زمان ها در الگوريتم بهينه O(n2) O(n) O(1) Yes Exchange Bubble Sort  
  O(n2) O(n2) O(1) No Selection Selection Sort  
بهترين حالت وقتی ليست مرتب است O(n2) O(n) O(1) Yes Insertion Insertion Sort *
  O(n2) O(n log n) O(1) Yes Insertion Binary Insertion Sort  
  O(n log n2) O(n log n) O(1) No Insersion Shell Sort  
  O(n2) O(n2) O(1) Yes exchange Shaker Sort  
  O(n2) O(n log n) O(n) No Partionioning Quick Sort *
O(1) درالگوريتم غيربازگشتی حافظه O(n log n) O(n log n) O(n) Yes Merging Merge Sort *
  O(n log n2) O(n log n2) O(n) Yes Merging Odd-Even Merge Sort  
  O(n2) O(n log n) O(n) Yes Indexing Radix Sort *
  O(k+n) O(k+n) O(k+n) Yes Indexing Counting Sort *
  O(n log n) O(n log n) O(1) No Selection Heap Sort *
  O(n2) O(n log n) O(n) Yes Selection Tree Sort *
  O(n2) O(n) O(k) Yes Indexing Bucket Sort  
مرتب سازي موازي است O(log n2) O(n log n)       Bitonic Sort  
تعداد اقلام منحصر بفرد m O(n) O(n) O(1) Yes Selection Bingo Sort  

قابل توجه دانشجويان: برای امتحان پايانی تنها الگوريتم های ستاره دار مطالعه شود.

براي دانلود روي لينک الگوريتم راست کليک کرده save target as را انتخال کنيد.

نوشته شده توسط محمد در پنجشنبه 26 آبان1390

 

  کتاب آموزش WPF

WPF یا Windows Presentation Foundation برای کار با کنترل های دات نت و ایجاد کنترل های سفارشی هست. قبل از ویندوز XP که هنوز دات نت بوجود نیمده بود برنامه نویس ها برای ایجاد کنترل باید از توابع API استفاده می کردن. اما با تولید دات نت این مشکل کمتر شد. با تولید دات نت 2 این مشکل باز هم کمتر شد اما برای شخصی سازی کنترل ها گاهی اوقات نیاز به کدنویسی های زاد بود اما با ظهور دات نت 3 و WPF این مشکلات تا حدود بسیار زیادی حل شد. در WPFعلاوه بر شخصی سازی کنترل های موجود می تونید اشکال گرافیکی سطح بالا مثل اشیا 3 بعدی و نمودار ها رو بکشید.

این خلاصه ای ازWPFبود. کتاب زیر که از انتشارات Apress هست در مورد این تکنولوژی مفصل صحبت کرده.


حجم : ۱۷ مگابایت

منبع : http://hamidonline.blogsky.com


لینک دانلود کتاب آموزش WPF

نوشته شده توسط محمد در پنجشنبه 23 تیر1390

 

  MSDN help در ویژوا استودیو 2010 (visual studio 2010 )

مایکروسافت در نسخه جدید Visual Studio سیستم راهنمای آن را که همنام با کتابخانه  راهنمای ماکروسافت به نام MSDN هست تغییر داده است. در این سیستم که اصطلاحا Help Viewer 1.0 نام دارد، دیگر از Document Explorer خبری نیست و راهنما می تواند در هر مرورگری نمایش داده شود. با این تفاوت که مرورگر پیش فرض صفحات راهنما، خود Visual Studio است.

متاسفانه نصب راهنما در این نسخه چندان سر راست نیست و همچنین تعدادی مشکل دارد که در این اینجا به بررسی آنها می پردازم.

 

Visual Studio 2010

نصب راهنما

پس از نصب موفقیت آمیز Visual Studio در صفحه پایان نصب، لینکی در پایین صفحه جهت نصب راهنما قرار داده شده که مستقیما از آنجا می توانید مراحل نصب را همانند زیر انجام دهید. لزومی نیست که حتما از آن لینک استفاده کنید، بعدا نیز می توانید راهنما را نصب کنید.

بقیه در ادامه مطلب ...

نوشته شده توسط محمد در جمعه 23 اردیبهشت1390

  ادامه مطلب

  آموزش فارسی برنامه نویسی سیلورلایت - Silverlight 4
  • عنوان کتاب:

    آموزش برنامه نویسی سیلورلایت - Silverlight 4

  • نویسنده: وحید نصیری
  • فرمت: PDF
  • زبان: فارسی
  • تعداد صفحات: 586

 

                                      download

نوشته شده توسط محمد در شنبه 18 دی1389

 

  دانلود فیلم آموزش جامع سیلور لایت silverlighte 4

microsoft silverlight 4 دانلود فیلم آموزش جامع silverlight 4

.

امروز یکی از کاملترین ویدئوهای آموزشی در ضمینه ی سیلورلایت ۴ را برای شما تدارک دیده ایم. همانطور که می دانید،SilverLight یک تکنولوژی جدید و شبیه به فرمت SWF مربوط به Macromedia Flash می باشد؛ که از آن برای ارائه برنامه های تحت وب به شکل مستقل از مرورگر (Cross-Browser) و نیز مستقل از سیستم عامل (Cross-Platform) با ظاهری بسیار زیبا یا RIA (Rich Interactive Application) استفاده می شود.

حال با توجه به شدت تبلیغات روی SilverLight و تولید ابزارهای مربوط به آن به نظر می رسد Microsoft تصمیم بسیار جدی در مورد توسعه و جهانی سازی SilverLight دارد. از آنجا که یادگیری و بکارگیری SilverLight، چندان دشوار به نظر نمی رسد پیشنهاد می کنیم طراحان وب و برنامه نویسان سریعتر به مطالعه و یادگیری این تکنولوژی فانتزی بپردازند تا از قافله علوم مختلف دنیای کامپیوتر عقب نمانند.

ما برای شما ۲۵ فایل ویدئویی که از ابتدا، شروع به توضیح سیلور لایت میکنند و تا سطح پیشرفته ادامه دارند را قرار داده ایم که شما میتوانید برای مشاهده ی جزئیات و دانلود این سری آموزشی کامل و فوق العاده، به ادامه ی مطلب مراجعه نمایید.

دانلود در ادامه مطلب ...

نوشته شده توسط محمد در شنبه 18 دی1389

  ادامه مطلب

  Silverlight (سیلور لایت ) چیست؟

همه چیز درباره Microsoft Silverlight

شرکت مایکروسافت در زمینه مالتی مدیا تحت وب  تکنولوژی SilverLight را در رقابت با Flash وارد عرصه وب نموده است و در سطح بسیار وسیعی در حال تبلیغ و مانور بر روی این تکنولوژی می باشد.
در این مقاله مروری بر ویژگی ها و قابلیت های آن و ابزار تولید و طراحی برنامه های سیلورلایت خواهیم داشت.
Silverlight چیست؟
SilverLight یک تکنولوژی جدید و شبیه به فرمت SWF  می باشد از آن برای ارائه برنامه های تحت وب به شکل مستقل از مرورگر (Cross-Browser) و نیز مستقل از سیستم عامل (Cross-Platform) با ظاهری بسیار زیبا RIA یا Rich Interactive Application استفاده می شود.

بقیه درادامه مطلب ...

نوشته شده توسط محمد در یکشنبه 30 آبان1389

  ادامه مطلب

  آموزش کامل expression web
expression web برنامه ای است برای طراحی سایت. کسانی که کد نوشتن بلد نیستند و یا حوصله ی کد نوشتن ندارند از این برنامه استفاده می کنند .

برای دانلود کتاب آموزش کامل expression web  به ادامه مطلب بروید ....

نوشته شده توسط محمد در سه شنبه 27 مهر1389

  ادامه مطلب

  دانلود بانک مقاله

دانلود بانک مقاله

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

برای دیدن لیست مطالب و دانلود به ادامه مطلب بروید ...

نوشته شده توسط محمد در جمعه 16 مهر1389

  ادامه مطلب

 

مطالب پیشین

خوش آمدید - welcom to mamadshop.ir
آهنگ های محمد عزیزی
درس زندگی به زبان سی شارپ
سالروز پیروزی انقلاب
فول آلبوم مازیار فلاحی
به امید ایران - یاس
کی جواب این سوال رو میدونه ؟
جدایی نادر از سیمین در اسراییل
مشاهده آنلاین ماهواره نوید
گاهی
پــــایــــان فیــــسبــوکــ
#3
بافومت كيست؟
استوار
سختی
مکس پین
تغییر
دلار !
پ ن پ جدید
90/11/2


  درباره



رگه هایی هرجایی در هم می آمیزند و عاقبتی را می سازند که عقوبتش را ما رقم نمی زنیم. اینجا چرکنویس تماشای روحی است که تقلا می کند از پی و پوست عریان شود ولی نمی تواند. این گونه است که تنها ردی محو و سبز بر پوست می ماند. بر پوست می مانیم و رگ ها تا مغز استخوان در پنهانی خویش اند.
سلام
خوش آمد میگم به تمام دوستان.
من محمد , دانشجوی نرم افزار هستم.
امیدوارم که لحظات خوبی رو در اینجا سپری کنید.
خیلی دوست دارم منو راهنمایی کنین و نظر بدین.
اسم Wirewall هم مال خودمه.در این زمینه کار میکنم.
با تشکر

mazizi1408@yahoo.com


لوگوی ما



  آمار بازدید


آمار بازديد :

» تعداد بازديدها:
» کاربر: Admin

..:: Page Ranking Tool ::.. **جستجوگر وبلاگ**

Google

در اين وبلاگ
در كل اينترنت
..:: ما را در گوگل محبوب کنید :) ::..


 

صفحه اصلي |  پست الکترونيک |  اضافه به علاقه مندي ها | ذخيره صفحه | طراح قالب


Powered By blogfa.com Copyright © 2009 by mamadshop
Design By : wWw.Theme-Designer.Com