Skip to content

Commit f028510

Browse files
committed
slection sort
1 parent 14b63e5 commit f028510

File tree

4 files changed

+84
-1
lines changed

4 files changed

+84
-1
lines changed

6_selection_sort.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
unsorted_list = [10, 5, 8, 4, 6, 1, 3, 7, 2, 9, -1]
2+
3+
print(unsorted_list)
4+
5+
6+
for i in range(0, len(unsorted_list)):
7+
for j in range(1 + i, len(unsorted_list)):
8+
if unsorted_list[i] > unsorted_list[j]:
9+
emp = unsorted_list[i]
10+
unsorted_list[i] = unsorted_list[j]
11+
unsorted_list[j] = emp
12+
13+
14+
print(unsorted_list)

README.md

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,7 @@ class SinglyLinkedList:
536536
در double linked list به علاوه next ما previous را هم ذخیره میکنیم. در این صورت میتوانیم از آخر به اول پیمایش کنیم و در کل کارمون راحت تر میشه
537537
اما حافظه بیشتری رو نیاز داریم.
538538

539-
برای مثال از نحوه پیاده سازیش توی پایتون این تکه کد رو زدم و خوشحال میشم برای کامل کردن و بهتر شدنش کمکم کنید.
539+
برای مثال از نحوه پیاده سازیش توی پایتون این تکه کد رو زدم، خوشحال میشم برای کامل کردن و بهتر شدنش کمکم کنید.
540540
</div>
541541

542542
```Python
@@ -671,3 +671,72 @@ class DoubleLinkedList:
671671

672672
return str(my_list)
673673
```
674+
675+
<div dir="rtl">
676+
677+
<h3>الگوریتم مرتب سازی</h3>
678+
برای توضیح الگوریتم مرتب سازی من توضیح ویکی پدیا رو قرار میدم و در ادامه چند تا الگوریتم مرتب سازی رو با هم پیاده می کنیم.
679+
680+
الگوریتم مرتب‌سازی، در دانش رایانه و ریاضی، الگوریتمی است که فهرستی از داده‌ها را به ترتیبی مشخص می‌چیند.
681+
682+
پرکاربردترین ترتیب‌ها، ترتیب‌های عددی و واژه‌نامه‌ای هستند. مرتب‌سازی کارا در بهینه‌سازی الگوریتم‌هایی که به فهرست‌های مرتب شده نیاز دارند (مثل جستجو و ترکیب)، اهمیت زیادی دارد.
683+
684+
از آغاز علم رایانه مسائل مرتب‌سازی بررسی‌های فراوانی را متوجه خود ساختند؛ شاید به این علت که در عین ساده بودن، حل آن به صورت کارا پیچیده است. برای نمونه مرتب‌سازی حبابی در سال ۱۹۵۶ به وجود آمد. در حالی که بسیاری این را یک مسئلهٔ حل شده می‌پندارند، الگوریتم کارآمد جدیدی همچنان ابداع می‌شوند (مثلاً مرتب‌سازی کتابخانه‌ای در سال ۲۰۰۴ مطرح شد).
685+
686+
مبحث مرتب‌سازی در کلاس‌های معرفی علم رایانه بسیار پرکاربرد است؛ مبحثی که در آن وجود الگوریتم‌های فراوان به آشنایی با ایده‌های کلی و مراحل طراحی الگوریتم‌های گوناگون کمک می‌کند؛ مانند تحلیل الگوریتم، داده‌ساختارها، الگوریتم‌های تصادفی، تحلیل بدترین و بهترین حالت و حالت میانگین، هزینهٔ زمان و حافظه، و حد پایین.
687+
688+
<h3>
689+
الگوریتم مرتب سازی انتخابی
690+
</h3>
691+
در این الگوریتم ما به این شکل عمل می کنیم که خونه به خونه و ایندکس به ایندکس مرتب کردن رو انتجام میدهیم.
692+
693+
یعنی اول بررسی میکنیم که کوچ ترین عدد چیست و در ایندکس صفر قرارش میدیم و بعدش بررسی میکنیم کوچک ترین برای ایدکس اول کدام عدد است و ...
694+
695+
این نوع مرتب سازی inplace هستش. یعنی برای sort نیازی نیست که آرایه جدیدی بوجود بیاریم و توی همون حافظه و آرایه ای که هست کار خودشو
696+
انجام میده.
697+
</div>
698+
699+
![data-structures.png](https://upload.wikimedia.org/wikipedia/commons/9/94/Selection-Sort-Animation.gif)
700+
701+
<div dir="rtl">
702+
نحوه پیاده سازی در پایتون:
703+
</div>
704+
705+
```Python
706+
unsorted_list = [10, 5, 8, 4, 6, 1, 3, 7, 2, 9, -1]
707+
708+
print(unsorted_list)
709+
710+
711+
for i in range(0, len(unsorted_list)):
712+
for j in range(1 + i, len(unsorted_list)):
713+
if unsorted_list[i] > unsorted_list[j]:
714+
emp = unsorted_list[i]
715+
unsorted_list[i] = unsorted_list[j]
716+
unsorted_list[j] = emp
717+
718+
719+
print(unsorted_list)
720+
```
721+
722+
<div dir="rtl">
723+
<h3>
724+
الگوریتم مرتب سازی درجی
725+
</h3>
726+
727+
728+
```Python
729+
730+
```
731+
732+
733+
<h3>
734+
الگوریتم مرتب سازی حبابی
735+
</h3>
736+
737+
```Python
738+
739+
```
740+
741+
742+
</div>

0 commit comments

Comments
 (0)