网站首页 网站地图
网站首页 > 娱乐人生 > 编程中基础算法怎么写

编程中基础算法怎么写

时间:2026-03-18 10:20:16

在编程中,基础算法是解决问题的基础,掌握它们对于编写高效、可靠的代码至关重要。以下是几种常见的基础算法的简要介绍和示例代码:

排序算法

冒泡排序:

通过不断比较相邻元素并交换位置,将较大的元素“冒泡”到数组的末尾。

插入排序:将未排序的元素插入到已排序部分的正确位置。

选择排序:每次从未排序的元素中选择最小(或最大)的元素,放到已排序部分的末尾。

快速排序:通过选择一个“基准”元素,将数组分为两部分,再递归地对两部分进行排序。

归并排序:将数组分成两半,分别排序,然后将结果合并。

示例代码(Python):

```python

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]

def insertion_sort(arr):

for i in range(1, len(arr)):

key = arr[i]

j = i-1

while j >= 0 and key < arr[j]:

arr[j+1] = arr[j]

j -= 1

arr[j+1] = key

```

查找算法

线性查找:

从数组的第一个元素开始,逐个检查直到找到目标元素或遍历完整个数组。

二分查找:利用数组的有序性,每次将查找范围缩小一半。

示例代码(Python):

```python

def linear_search(arr, target):

for i in range(len(arr)):

if arr[i] == target:

return i

return -1

def binary_search(arr, target):

left, right = 0, len(arr) - 1

while left <= right:

mid = (left + right) // 2

if arr[mid] == target:

return mid

elif arr[mid] < target:

left = mid + 1

else:

right = mid - 1

return -1

```

动态规划

斐波那契数列:

通过递推关系 F(n) = F(n-1) + F(n-2) 来计算第 n 个斐波那契数。

示例代码(Python):

```python

def fibonacci(n):

if n <= 1:

return n

a, b = 0, 1

for _ in range(2, n + 1):

a, b = b, a + b

return b

```

回溯算法

八皇后问题:

在 8x8 的棋盘上放置八个皇后,使它们互不攻击。

示例代码(Python):

```python

def is_safe(board, row, col, n):

for i in range(col):

if board[row][i] == 1:

return False

for i, j in zip(range(row, -1, -1), range(col, -1, -1)):

if board[i][j] == 1:

return False

for i, j in zip(range(row, n, 1), range(col, -1, -1)):

if board[i][j] == 1:

return False

return True

def solve_n_queens(board, col, n):

if col >= n:

return True

for i in range(n):

if is_safe(board, i, col, n):

board[i][col] = 1

if solve_n_queens(board, col + 1, n):

return True

board[i][col] = 0

return False

```

分治算法

归并排序:

将数组分成两半,分别排序,然后将结果合并。

示例代码(Python):