PDA

View Full Version : سوال: توضیح مختصر در رابطه با این نوع مرتب سازی



irpersian20
شنبه 24 فروردین 1392, 17:20 عصر
با سلام
امکان داره در مورد نحوه Sort کرد ن توضیح دهید؟ این بر اساس کمترین مرتب میکنه.
بر چه مبنا انجام میده و تا کی؟
ظاهرا تابع بازگشتی هست. و با توجه به نوع داده 3 مورد 1 و 0 و -1 بر مگردونه

Array.Sort(myArray, (x, y) => { if (x.test > y.test)return 1; else if (x.test == y.test)return 0; else return -1; });


فکر کنم سوال خیلی ها باشه.

massar
یک شنبه 25 فروردین 1392, 11:24 صبح
سلام
این متد sort بازگشتی نیست، تو پارامتر اول خود آرایه و تو پارامتر دوم یک تابع از نوع IComparer<T> رو قبول میکنه. IComparer دو مقدار میگیره و اونو مقایسه میکنه اگر اولی بزرگتر بود 1 اگر دومی بزرگتر بود -1 و اگر برابر بودند 0 برمیگردونه اینجا هم میبینید که عبارت لاندا داره همینکارو میکنه.
در مورد الگوریتم مرتب سازی اگر اندازه ی آرایه کمتر 16 عدد باشه از insertion sort اگر بیشتر از دو ضرب در لوگاریتم n در مبنای 10 باشه که n اندازه ی ارایه ی ورودیه heap sort، در باقی موارد quick sort استفاده میکنه.
یه پارامتر سوم هم میتونه بگیره که آرایه رو از گوچکتر به بزرگتر مرتب کنه یا بر عکس.

irpersian20
سه شنبه 27 فروردین 1392, 18:11 عصر
سلام
این متد sort بازگشتی نیست، تو پارامتر اول خود آرایه و تو پارامتر دوم یک تابع از نوع IComparer<T> رو قبول میکنه. IComparer دو مقدار میگیره و اونو مقایسه میکنه اگر اولی بزرگتر بود 1 اگر دومی بزرگتر بود -1 و اگر برابر بودند 0 برمیگردونه اینجا هم میبینید که عبارت لاندا داره همینکارو میکنه.
در مورد الگوریتم مرتب سازی اگر اندازه ی آرایه کمتر 16 عدد باشه از insertion sort اگر بیشتر از دو ضرب در لوگاریتم n در مبنای 10 باشه که n اندازه ی ارایه ی ورودیه heap sort، در باقی موارد quick sort استفاده میکنه.
یه پارامتر سوم هم میتونه بگیره که آرایه رو از گوچکتر به بزرگتر مرتب کنه یا بر عکس.

دوست محترم میشه در مورد این بیشتر توضیح بدید من هر چه سعی کردم بفهمم نشد
تو پارامتر اول خود آرایه و تو پارامتر دوم یک تابع از نوع IComparer<T> رو قبول میکنه. IComparer دو مقدار میگیره و اونو مقایسه میکنه اگر اولی بزرگتر بود 1 اگر دومی بزرگتر بود -1 و اگر برابر بودند 0 برمیگردونه اینجا هم میبینید که عبارت لاندا داره همینکارو میکنه.