请针对实例2.6.1.4.5.3.2分别用选择排序和冒泡排序进行排序,并写出代码算法过程
时间: 2024-01-24 21:17:11 浏览: 63
实例2.6.1.4.5.3.2要求对以下数组进行排序:[8, 2, 3, 5, 1, 4, 6, 9, 7, 10]
选择排序的算法过程如下:
1. 从数组中选择最小的元素,将其与数组第一个元素交换位置,然后将其标记为已排序;
2. 在剩余未排序的元素中,选择最小的元素,将其与数组中第二个元素交换位置,然后将其标记为已排序;
3. 以此类推,直到所有元素都排序完成。
下面是选择排序的Python代码实现:
```
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i+1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
```
冒泡排序的算法过程如下:
1. 从数组第一个元素开始,依次比较相邻的两个元素,若前面的元素大于后面的元素,则交换它们的位置;
2. 对整个数组重复以上步骤,直到没有任何一对相邻元素需要交换位置。
下面是冒泡排序的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
```
两种排序算法都可以达到同样的效果,但选择排序的时间复杂度为O(n^2),冒泡排序的时间复杂度也是O(n^2),但在实际应用中,选择排序的速度通常比冒泡排序要快。
阅读全文