在Python中实现算法通常涉及以下步骤:
理解算法:
首先,你需要理解算法的原理和步骤。
选择合适的数据结构:
根据算法需求选择合适的数据结构,如列表、数组等。
编写代码:
根据算法步骤,使用Python语法编写代码。
测试和优化:
运行代码,测试其正确性,并根据需要进行优化。
下面是一些常见算法的Python实现示例:
冒泡排序
def bubble_sort(lst):
n = len(lst)
for i in range(n):
for j in range(0, n-i-1):
if lst[j] > lst[j+1]:
lst[j], lst[j+1] = lst[j+1], lst[j]
return lst
测试
lst = [64, 34, 25, 12, 22, 11, 90]
print("原始列表:", lst)
print("排序后的列表:", bubble_sort(lst))
选择排序
def find_min_index(arr):
min_idx = 0
for i in range(1, len(arr)):
if arr[i] < arr[min_idx]:
min_idx = i
return min_idx
def selection_sort(arr):
for i in range(len(arr)):
min_idx = find_min_index(arr)
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
测试
arr = [64, 25, 12, 22, 11]
print("原始列表:", arr)
print("排序后的列表:", selection_sort(arr))
快速排序
def partition(arr, low, high):
i = (low-1)
pivot = arr[high]
for j in range(low, high):
if arr[j] <= pivot:
i = i+1
arr[i], arr[j] = arr[j], arr[i]
arr[i+1], arr[high] = arr[high], arr[i+1]
return (i+1)
def quick_sort(arr, low, high):
if low < high:
pi = partition(arr, low, high)
quick_sort(arr, low, pi-1)
quick_sort(arr, pi+1, high)
测试
arr = [10, 7, 8, 9, 1, 5]
n = len(arr)
quick_sort(arr, 0, n-1)
print("排序后的列表:", arr)
KNN算法