Skip to content

Commit 4be97ba

Browse files
authored
feat: add shell sort and selection sort in Python (doocs#814)
1 parent e3c1d5e commit 4be97ba

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
def selectionSort(arr):
2+
n = len(arr)
3+
for i in range(n - 1):
4+
min_index = i
5+
for j in range(i + 1, n):
6+
if arr[j] < arr[min_index]:
7+
min_index = j
8+
arr[min_index], arr[i] = arr[i], arr[min_index]
9+
10+
11+
arr = [26, 11, 99, 33, 69, 77, 55, 56, 67]
12+
selectionSort(arr)
13+
print(arr)

basic/sorting/ShellSort/ShellSort.py

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
def shellSort(arr):
2+
n = len(arr)
3+
gap = int(n / 2)
4+
while gap > 0:
5+
for i in range(gap, n):
6+
temp = arr[i]
7+
j = i
8+
while j >= gap and arr[j - gap] > temp:
9+
arr[j] = arr[j - gap]
10+
j -= gap
11+
arr[j] = temp
12+
gap = int(gap / 2)
13+
14+
15+
arr = [12, 34, 54, 2, 3]
16+
shellSort(arr)
17+
print(arr)

0 commit comments

Comments
 (0)