哈希,斐波那契数列,冒泡排序分别帮我用python实现
时间: 2024-10-12 10:08:38 浏览: 10
当然可以。以下是三种算法的Python实现:
1. **哈希(Hashing)** - Python中的字典(dict)就是一种利用哈希实现的数据结构。这里是一个简单的例子,创建一个函数计算字符串的哈希值:
```python
def hash_function(s):
return sum(ord(c) for c in s)
# 示例
input_string = "Hello, World!"
hash_value = hash_function(input_string)
print(f"输入字符串 '{input_string}' 的哈希值为 {hash_value}")
```
2. **斐波那契数列** - 斐波那契数列是一个每个数字都是前两个数字之和的序列。下面是递归和循环两种方式的实现:
**递归法:**
```python
def fibonacci_recursive(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)
n_terms = int(input("请输入想要计算的项数: "))
for i in range(1, n_terms+1):
print(fibonacci_recursive(i), end=" ")
```
**循环法(更高效):**
```python
def fibonacci_iterative(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
return a
n_terms = int(input("请输入想要计算的项数: "))
for i in range(n_terms):
print(fibonacci_iterative(i), end=" ")
```
3. **冒泡排序** - 这是一种简单的排序算法,它重复地遍历列表,比较相邻的元素并交换位置,直到列表完全有序。
```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]
return arr
numbers = [64, 34, 25, 12, 22, 11, 90]
sorted_numbers = bubble_sort(numbers)
print("排序后的数组:", sorted_numbers)
```
阅读全文