Python 编写一个针对数值数据集的排序算法
Python中的数值数据集适用于数值数据类型。Python中的整数排序算法包括以下内容:
- Bubble sort(冒泡排序)
- Shell sort(希尔排序)
- Selection sort(选择排序)
Python Bubble Sort(冒泡排序)
Bubble Sort(冒泡排序)是基于比较的排序算法。相邻的元素进行比较和交换,以得到正确的顺序。
示例
def bubblesort(myList):
# Swap the elements to arrange in order
for iter_num in range(len(myList)-1,0,-1):
for idx in range(iter_num):
if myList[idx]>myList[idx+1]:
temp = myList[idx]
myList[idx] = myList[idx+1]
myList[idx+1] = temp
# Unsorted List
myList = [40, 23, 7, 49, 32, 98, 76, 48, 87]
print("Unsorted List = ",myList)
# Calling the function
bubblesort(myList)
print("Sorted List = ",myList)
输出
Unsorted List = [40, 23, 7, 49, 32, 98, 76, 48, 87]
Sorted List = [7, 23, 32, 40, 48, 49, 76, 87, 98]
Python 希尔排序
对于希尔排序,定义一个函数,将列表和列表的长度作为参数。这个列表在特定数量的元素上进行排序,其中数量最大的值。这样做直到元素的数量到达最小值为止。
示例
def shell_sort(my_list, list_len):
interval = list_len // 2
while interval > 0:
for i in range(interval, list_len):
temp = my_list[i]
j = i
while j >= interval and my_list[j - interval] > temp:
my_list[j] = my_list[j - interval]
j -= interval
my_list[j] = temp
interval //= 2
my_list = [40, 23, 7, 49, 32, 98, 76, 48, 87]
list_len = len(my_list)
print ("The list before sorting is :")
print(my_list)
shell_sort(my_list, list_len)
print ("\nThe list after performing shell sorting is :")
print(my_list)
输出
The list before sorting is :
[40, 23, 7, 49, 32, 98, 48, 87]
The list after performing shell sorting is :
[7, 23, 32, 40, 48, 49, 87, 98]
Python 选择排序
在选择排序算法中,通过递归地从未排序的部分中找到最小的元素并将其插入到开始位置来对数组进行排序。在对给定数组执行选择排序时,会形成两个子数组。
- 已排序的子数组
-
未排序的子数组
以下是代码示例:
示例
A = ['h','o','w','a','r','e','y','o','u']
for i in range(len(A)):
min_= i
for j in range(i+1, len(A)):
if A[min_] > A[j]:
min_ = j
#swap
A[i], A[min_] = A[min_], A[i]
# main
for i in range(len(A)):
print(A[i])
输出
a
e
h
o
o
r
u
w
y