写出用直接插入排序将关键字序列{54,23, 89,48,64,50, 25,90,34}排序过程的每-趟结果,并编码实现直接插入排序算法。
时间: 2024-03-06 13:49:01 浏览: 195
好的,以下是直接插入排序的过程:
第1趟:23 54 89 48 64 50 25 90 34
第2趟:23 54 89 48 64 50 25 90 34
第3趟:23 48 54 89 64 50 25 90 34
第4趟:23 48 54 64 89 50 25 90 34
第5趟:23 48 50 54 64 89 25 90 34
第6趟:23 25 48 50 54 64 89 90 34
第7趟:23 25 34 48 50 54 64 89 90
以下是直接插入排序的Python实现:
```python
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 = [54, 23, 89, 48, 64, 50, 25, 90, 34]
sorted_arr = insertion_sort(arr)
print(sorted_arr)
```
输出结果为:[23, 25, 34, 48, 50, 54, 64, 89, 90]
相关问题
用java写出用直接插入排序将关键字序列{54,23, 89,48,64,50, 25,90,34}排序过程的每-趟结果,并编码实现直接插入排序算法。
好的,以下是直接插入排序的过程:
第1趟:23 54 89 48 64 50 25 90 34
第2趟:23 54 89 48 64 50 25 90 34
第3趟:23 48 54 89 64 50 25 90 34
第4趟:23 48 54 64 89 50 25 90 34
第5趟:23 48 50 54 64 89 25 90 34
第6趟:23 25 48 50 54 64 89 90 34
第7趟:23 25 34 48 50 54 64 89 90
以下是直接插入排序的Java实现:
```java
public class InsertionSort {
public static void main(String[] args) {
int[] arr = {54, 23, 89, 48, 64, 50, 25, 90, 34};
insertionSort(arr);
for (int i : arr) {
System.out.print(i + " ");
}
}
public static void insertionSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
}
```
输出结果为:23 25 34 48 50 54 64 89 90
设有关键字序列(503,087,512,061,908,170,897,275,653,426),试用直接插入排序法、希尔排序法、快速排序 法、堆排序法、二路归并排序法对其进行排序,要求写出每趟排序结束时关键字序列的状态。
以下是每种排序算法每趟排序结束时关键字序列的状态:
1. 直接插入排序:
- 第1趟排序:[503]
- 第2趟排序:[087, 503]
- 第3趟排序:[087, 503, 512]
- 第4趟排序:[061, 087, 503, 512]
- 第5趟排序:[061, 087, 503, 512, 908]
- 第6趟排序:[061, 087, 170, 503, 512, 908]
- 第7趟排序:[061, 087, 170, 503, 512, 897, 908]
- 第8趟排序:[061, 087, 170, 275, 503, 512, 897, 908]
- 第9趟排序:[061, 087, 170, 275, 426, 503, 512, 897, 908]
- 第10趟排序:[061, 087, 170, 275, 426, 503, 512, 653, 897, 908]
2. 希尔排序(增量d=5):
- 第1趟排序:[170, 087, 512, 061, 908, 503, 897, 275, 653, 426]
- 第2趟排序:[170, 087, 512, 061, 908, 503, 897, 275, 653, 426]
- 第3趟排序:[170, 087, 512, 061, 908, 503, 897, 275, 653, 426]
- 第4趟排序:[061, 087, 170, 275, 426, 503, 512, 653, 897, 908]
- 第5趟排序:[061, 087, 170, 275, 426, 503, 512, 653, 897, 908]
3. 快速排序:
- 第1趟排序:[426, 087, 512, 061, 275, 170, 503, 897, 653, 908]
- 第2趟排序:[170, 087, 275, 061, 426, 512, 503, 897, 653, 908]
- 第3趟排序:[061, 087, 170, 275, 426, 512, 503, 897, 653, 908]
- 第4趟排序:[061, 087, 170, 275, 426, 512, 503, 897, 653, 908]
- 第5趟排序:[061, 087, 170, 275, 426, 512, 503, 897, 653, 908]
- 第6趟排序:[061, 087, 170, 275, 426, 512, 503, 897, 653, 908]
- 第7趟排序:[061, 087, 170, 275, 426, 512, 503, 897, 653, 908]
- 第8趟排序:[061, 087, 170, 275, 426, 512, 503, 897, 653, 908]
- 第9趟排序:[061, 087, 170, 275, 426, 512, 503, 897, 653, 908]
- 第10趟排序:[061, 087, 170, 275, 426, 512, 503, 897, 653, 908]
4. 堆排序:
- 第1趟排序:[908, 503, 897, 512, 426, 170, 653, 087, 275, 061]
- 第2趟排序:[653, 512, 897, 503, 426, 170, 061, 087, 275, 908]
- 第3趟排序:[512, 426, 897, 503, 275, 170, 061, 087, 653, 908]
- 第4趟排序:[503, 426, 897, 275, 170, 061, 087, 512, 653, 908]
- 第5趟排序:[426, 275, 897, 170, 061, 087, 503, 512, 653, 908]
- 第6趟排序:[275, 170, 897, 061, 087, 426, 503, 512, 653, 908]
- 第7趟排序:[170, 087, 897, 061, 275, 426, 503, 512, 653, 908]
- 第8趟排序:[087, 061, 897, 170, 275, 426, 503, 512, 653, 908]
- 第9趟排序:[061, 087, 897, 170, 275, 426, 503, 512, 653, 908]
- 第10趟排序:[061, 087, 897, 170, 275, 426, 503, 512, 653, 908]
5. 二路归并排序:
- 第1趟排序:[087, 503, 512, 061, 170, 897, 275, 426, 653, 908]
- 第2趟排序:[061, 087, 170, 503, 512, 275, 426, 653, 897, 908]
- 第3趟排序:[061, 087, 170, 275, 426, 503, 512, 653, 897, 908]
- 第4趟排序:[061, 087, 170, 275, 426, 503, 512, 653, 897, 908]
- 第5趟排序:[061, 087, 170, 275, 426, 503, 512, 653, 897, 908]
- 第6趟排序:[061, 087, 170, 275, 426, 503, 512, 653, 897, 908]
- 第7趟排序:[061, 087, 170, 275, 426, 503, 512, 653, 897, 908]
- 第8趟排序:[061, 087, 170, 275, 426, 503, 512, 653, 897, 908]
- 第9趟排序:[061, 087, 170, 275, 426, 503, 512, 653, 897, 908]
- 第10趟排序:[061, 087, 170, 275, 426, 503, 512, 653, 897, 908]
阅读全文