Python 编写一个针对数值数据集的排序算法

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程