1.输入一组关键字并存储。 2.用不同排序算法对关键字进行排序 3.给一关键字序列,查找给定关键字所在的位序,若不在表中,则返回0。
时间: 2023-12-16 11:03:47 浏览: 73
好的,这里有一个简单的代码实现,使用 Python 语言。
```python
class KeywordSorter:
def __init__(self, keywords):
self.keywords = keywords
def bubble_sort(self):
sorted_list = self.keywords.copy()
n = len(sorted_list)
for i in range(n):
for j in range(0, n-i-1):
if sorted_list[j] > sorted_list[j+1]:
sorted_list[j], sorted_list[j+1] = sorted_list[j+1], sorted_list[j]
return sorted_list
def selection_sort(self):
sorted_list = self.keywords.copy()
n = len(sorted_list)
for i in range(n):
min_idx = i
for j in range(i+1, n):
if sorted_list[min_idx] > sorted_list[j]:
min_idx = j
sorted_list[i], sorted_list[min_idx] = sorted_list[min_idx], sorted_list[i]
return sorted_list
def insertion_sort(self):
sorted_list = self.keywords.copy()
n = len(sorted_list)
for i in range(1, n):
key = sorted_list[i]
j = i-1
while j >=0 and key < sorted_list[j] :
sorted_list[j+1] = sorted_list[j]
j -= 1
sorted_list[j+1] = key
return sorted_list
def binary_search(self, key):
sorted_list = self.selection_sort()
n = len(sorted_list)
low = 0
high = n - 1
while low <= high:
mid = (low + high) // 2
if sorted_list[mid] < key:
low = mid + 1
elif sorted_list[mid] > key:
high = mid - 1
else:
return mid + 1
return 0
```
这个类包含了四个方法:
- `__init__(self, keywords)`:初始化方法,接收一个关键字列表。
- `bubble_sort(self)`:冒泡排序方法,返回一个排好序的关键字列表。
- `selection_sort(self)`:选择排序方法,返回一个排好序的关键字列表。
- `insertion_sort(self)`:插入排序方法,返回一个排好序的关键字列表。
- `binary_search(self, key)`:二分查找方法,接收一个关键字作为参数,如果关键字在列表中,则返回它的位置,否则返回 0。
可以使用如下方式调用:
```python
keywords = ["apple", "banana", "orange", "grape", "kiwi"]
sorter = KeywordSorter(keywords)
sorted_list = sorter.bubble_sort()
print(sorted_list)
# ['apple', 'banana', 'grape', 'kiwi', 'orange']
sorted_list = sorter.selection_sort()
print(sorted_list)
# ['apple', 'banana', 'grape', 'kiwi', 'orange']
sorted_list = sorter.insertion_sort()
print(sorted_list)
# ['apple', 'banana', 'grape', 'kiwi', 'orange']
index = sorter.binary_search("orange")
print(index)
# 5
index = sorter.binary_search("watermelon")
print(index)
# 0
```
阅读全文
相关推荐
















