利用以下排序方法实现数组元素排列 1)冒泡法 2)选择法 3)体会两者的区别
时间: 2023-12-03 13:45:14 浏览: 29
1) 冒泡法排序:
冒泡排序是一种简单的排序方法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就进行交换,直到没有任何一对数字需要交换位置。
使用冒泡排序对数组进行排序的代码如下:
```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
```
2) 选择法排序:
选择排序是一种简单直观的排序算法。其基本思想是:首先在未排序的数列中找到最小元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
使用选择排序对数组进行排序的代码如下:
```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
```
3) 区别:
冒泡排序和选择排序都是简单的排序算法,时间复杂度都是 O(n^2)。但是它们的实现方式不同,冒泡排序每次比较相邻的两个元素,如果顺序错误就进行交换,因此它可以在比较少的交换次数下完成排序。而选择排序每次从未排序的元素中选择最小的元素,然后放到已排序序列的末尾,因此它可以在比较少的比较次数下完成排序。因此,在排序元素数量较少的情况下,冒泡排序更加高效;而在排序元素数量较多的情况下,选择排序更加高效。