手动数组元素二分查找、排序
时间: 2023-09-16 18:15:05 浏览: 89
对数组进行二分查找
手动实现数组元素的二分查找和排序,示例代码如下:
```python
# 实现数组元素的二分查找
def binary_search(arr, target):
left = 0
right = 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
# 实现数组元素的插入排序
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr
# 测试代码
arr = [5, 2, 6, 1, 3, 9, 4, 8, 7]
target = 6
# 对数组进行排序
arr = insertion_sort(arr)
print("排序后的数组:", arr)
# 在排序后的数组中查找目标元素
result = binary_search(arr, target)
if result == -1:
print("目标元素不存在")
else:
print("目标元素在数组中的下标为:", result)
```
输出结果:
```
排序后的数组: [1, 2, 3, 4, 5, 6, 7, 8, 9]
目标元素在数组中的下标为: 5
```
上述代码实现了手动对数组进行二分查找和插入排序的功能。其中,二分查找算法的时间复杂度为 $O(\log n)$,插入排序算法的时间复杂度为 $O(n^2)$,在实际应用中需要根据具体情况选择合适的算法。
阅读全文