ممنون ميشم هر چه سريعتر جواب بديد ؟
و اگه ميشه چطوري؟
Printable View
ممنون ميشم هر چه سريعتر جواب بديد ؟
و اگه ميشه چطوري؟
سلام
آره میشه. دفعه پیش که این سئوالو پرسیدین گفتم نمیشه چون فک می کردم نمیشه خیلی effivcient انجامش داد. ولی یکم روش فکر کردم دیدم میشه!
به شبه الگوریتم زیر دقت کنید:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]کد:function partition(a, left, right, pivotIndex)
pivotValue := a[pivotIndex]
swap(a[pivotIndex], a[right]) // Move pivot to end
storeIndex := left
for i from left to right-1
if a[i] ≤ pivotValue
swap(a[storeIndex], a[i])
storeIndex := storeIndex + 1
swap(a[right], a[storeIndex]) // Move pivot to its final place
return storeIndex
میبینید لازمه از یه متغییری به نام left تا right بری و یه سری جابجایی انجام بدی و دوباره quicksort رو روی زیر آرایه انجام بدی. اگه خوب متوجه نشدین که چرا این جابجایی ها رو انجام می دیم به شبه کد زیر دقت کن:
می بینید که آرایه رو به دو قسمت کوچکتر از pivot و بزرگتر از pivot تقسیم می کنیم (pivot یه متغییر دلخواهکد:function quicksort(q)
var list less, pivotList, greater
if length(q) ≤ 1
return q
select a pivot value pivot from q
for each x in q except the pivot element
if x < pivot then add x to less
if x ≥ pivot then add x to greater
add pivot to pivotList
return concatenate(quicksort(less), pivotList, quicksort(greater))
که هر دفعه از بین یکی از اعضای آرایه انتخاب میشه) و سپس روی اون قسمت ها quicksort رو انجام می دیم.
حالا واسه نوشتن الگوریتم واسۀ یه لیست پیوندی اینه که از left تا right رو به روش لیست پیوندی طی کنیم(مثلاً بوسیلۀ next):
برنامه ادغام و مرتب سازي ليست پيوندي خواهشن
الگوريتم ادغام و مرتب سازي ليست پيوندي
الگريتم ادغام و مرتب سازي ليست پيوندي
خوب الگوریتم بالا الگوریتم مرتب سازیه دیگه!
آقایون ازتون خواهش میکنم کمکم کنید،من فردا تحویل پروژه دارم نمیدونم چیکار کنم
کسی هست بتونه پروژه زیرو به هر زبانی که شده واسم بنویسه؟ تورو خدا کمکم کنید
برنامه ای بنویسید که عناصر استک آ با سایز 10 از ورودی دریافت کند سپس با استفاده ار حداقل ساختمان داده اضافی
عناصر استک آ را وارد استک خالی بی کند
به نحوی که ترتیب عناصر در بی همان ترتیب در آ باشد
در دو حالت
الف:
جهت پیاده سازی ساخمان داده های مورد نیاز از آرایه استفاده کنید
ب:
از لیست های پیوندی
اگه کسی تونست واسم میل کنه یا خبرم بده اینم ایمیلم
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]