📜  排序迭代 (1)

📅  最后修改于: 2023-12-03 15:25:55.999000             🧑  作者: Mango

排序迭代

在编程中,经常需要对数据进行排序和迭代。排序可以帮助我们更方便地查找和操作数据,而迭代可以帮助我们对数据进行遍历和处理。本文将介绍一些常见的排序和迭代方法,以及它们在不同编程语言中的实现。

排序

排序是将一组数据按照某种规则进行排列的过程。常见的排序方法包括冒泡排序、选择排序、插入排序、归并排序、快速排序等。

冒泡排序

冒泡排序是一种简单的排序方法,在数组中相邻的元素进行比较并交换,把较大的元素往后移,较小的元素往前移,直到数组有序为止。

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    return arr
选择排序

选择排序是一种简单的排序方法,每次找到最小的元素并把它放到已排序部分的末尾。

def selection_sort(arr):
    n = len(arr)
    for i in range(n):
        min_idx = i
        for j in range(i+1, n):
            if arr[j] < arr[min_idx]:
                min_idx = j
        arr[i], arr[min_idx] = arr[min_idx], arr[i]
    return arr
插入排序

插入排序是一种简单的排序方法,每次将一个元素插入到已排序部分的合适位置。

def insertion_sort(arr):
    n = len(arr)
    for i in range(1, n):
        key = arr[i]
        j = i-1
        while j >=0 and key < arr[j] :
            arr[j+1] = arr[j]
            j -= 1
        arr[j+1] = key
    return arr
归并排序

归并排序是一种分治的排序方法,将待排序数组分成两个部分,对每个部分进行排序,然后合并两个有序部分。

def merge_sort(arr):
    if len(arr) > 1:
        mid = len(arr)//2
        L = arr[:mid]
        R = arr[mid:]
 
        merge_sort(L)
        merge_sort(R)
 
        i = j = k = 0
 
        while i < len(L) and j < len(R):
            if L[i] < R[j]:
                arr[k] = L[i]
                i += 1
            else:
                arr[k] = R[j]
                j += 1
            k += 1
 
        while i < len(L):
            arr[k] = L[i]
            i += 1
            k += 1
 
        while j < len(R):
            arr[k] = R[j]
            j += 1
            k += 1
    return arr
快速排序

快速排序是一种分治的排序方法,通过选取一个基准值,将数组分成两个部分,一部分小于基准值,一部分大于基准值,然后对两个部分进行递归排序。

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    else:
        pivot = arr[0]
        left = []
        right = []
        for i in arr[1:]:
            if i < pivot:
                left.append(i)
            else:
                right.append(i)
        return quick_sort(left) + [pivot] + quick_sort(right)
迭代

迭代是对数据结构进行遍历和处理的方法。常见的迭代方法包括for循环、while循环、递归等。

for循环

for循环是一种方便的迭代方法,可以对数组、列表、字符串等进行遍历。

arr = [1, 2, 3, 4, 5]
for i in arr:
    print(i)
while循环

while循环是一种更灵活的迭代方法,可以根据条件进行遍历。

arr = [1, 2, 3, 4, 5]
i = 0
while i < len(arr):
    print(arr[i])
    i += 1
递归

递归是一种非常基础的迭代方法,可以通过调用自身来处理复杂的问题。

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

print(factorial(5))
结论

排序和迭代是编程中非常基础和重要的方法,它们可以帮助我们更方便地对数据进行处理。本文介绍了一些常见的排序和迭代方法以及它们在Python中的实现代码,读者可以根据自己的需要选择适当的方法来应用在自己的程序中。