第三章 ALDS1_1_A:Insertion Sort 插入排序法
2017-12-22 00:16
477 查看
知识点
插入排序法的执行步骤(1)将A[0]视为已排序
(2)取出下一个未排序的元素,并赋值给变量v
(3)在排序好的元素的最后一个开始比较,比v大的元素向后移动一个单位,直到找到小于等于v的元素或全部排序好的元素都比较过
(4)将变量v插入到当前位置
(5)如果数列A还有未排序的元素,则执行步骤2,否则结束算法
小结
时间复杂度O(n2),空间复杂度O(n),是稳定排序问题链接
ALDS1_1_A:Insertion Sort问题内容
对于给出的数列A,输出A进行插入排序的整个过程思路
模拟插入排序,完成一次处理后输出当前数列即可。代码
#include<iostream> #include<cstdio> #include<cmath> using namespace std; // 打印数列A void print(int A[],int n) { for (int i = 0; i < n; i++) printf("%d%c", A[i], i == n - 1 ? '\n' : ' '); } // 插入排序法 void insertsort(int A[], int n) { // 从第二个开始,往前找比当前的小的值, // 比当前值大的就往后移,知道找到小于等于A[i]的 for (int i = 1; i < n; i++) { int j = i - 1; int v = A[i]; while (j >= 0 && A[j] > v) { A[j + 1] = A[j]; j--; } A[j + 1] = v; print(A, n); } } int main() { int n, A[110]; scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", &A[i]); print(A, n); insertsort(A, n); return 0; }
相关文章推荐
- 插入排序法:ALDS1_1_A:Insertion Sort
- Java插入排序法InsertionSort
- C++插入排序法(Insertion Sort)
- 第三章 ALDS1_2_C:Stable Sort 稳定排序
- 第三章 ALDS1_2_D:Shell Sort 希尔排序法
- [C++] 插入排序法 (Insertion sort)
- 《挑战程序设计竞赛》阅读笔记一 之 ALDS1_1_A Insertion Sort
- 算法Sedgewick第四版-第1章基础-2.1Elementary Sortss-002插入排序法(Insertion sort)
- AOJ-ALDS1_1_A Insertion Sort【插入排序】
- 1098. Insertion or Heap Sort 解析
- 插入排序-----Insertion Sort
- PHP Array -- PHP排序 -- 插入排序(Insertion Sort)
- 1098. Insertion or Heap Sort (25)
- 直接插入排序(Insertion Sort)
- insertion_sort
- 【代码积累】InsertionSort via list
- Insertion Sort List
- Insertion Sort List
- [leetcode 147] Insertion Sort List
- 排序算法-插入排序 Insertion Sort Θ(n-n)