forked from kelvins/algorithms-and-data-structures
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomb_sort.py
32 lines (29 loc) · 897 Bytes
/
comb_sort.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# ----------------------------------------------------------------------------
# Created By : octaviolage
# Created Date: 2022-05-15
# version ='1.0'
# -------------------------------
def comb_sort(arr: list) -> list:
"""
Implementação de um algoritmo de ordenação combinada.
"""
gap = len(arr)
shrink = 1.3
swapped = True
while gap > 1 or swapped:
gap = int(gap / shrink)
if gap < 1:
gap = 1
swapped = False
for i in range(len(arr) - gap):
if arr[i] > arr[i + gap]:
arr[i], arr[i + gap] = arr[i + gap], arr[i]
swapped = True
return arr
if __name__ == "__main__":
from random import randint
my_list = [randint(0, 100) for _ in range(10)]
print(f"Lista: {my_list}")
print(f"Ordenada: {comb_sort(my_list)}")