当前位置:   article > 正文

插入排序 --- 附图解(C语言)

插入排序

目录

一、简介

二、代码部分

2.1代码输出结果

三、代码部分分析

3.1核心代码

 3.1.1代码的解释

3.2代码的部分运行过程(带图解) 

四、总结 

一、简介

中文名:插入排序

英文名:Insertion sort

时间复杂度:O(N^(1-2))

稳定性:稳定的排序算法

原理:在待排序的数组里,从数组的第二个数字开始,通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

二、代码部分

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int main()
  4. {
  5. int arr[10] = { 9,2,1,3,5,4,10,8,6,7 };
  6. int flag = 0, i = 0,j = 0;
  7. printf("排列前:");
  8. for (int i = 0; i < 10; i++)
  9. {
  10. printf("%d ", arr[i]);
  11. }
  12. printf("\n\n");
  13. for (i = 1; i < 10; i++)
  14. {
  15. flag = arr[i]; //记录arr[i] 的值
  16. for (j = i - 1; j >= 0 && arr[j] > flag;j--) //当arr[i]前面的一个数字比a[i]大时
  17. {
  18. arr[j + 1] = arr[j]; //将arr[i] 和其前一个数字进行交换
  19. }
  20. arr[j + 1] = flag;
  21. }
  22. printf("排列后:");
  23. for (int i = 0; i < 10; i++)
  24. {
  25. printf("%d ", arr[i]);
  26. }
  27. printf("\n\n");
  28. system("pause");
  29. return 0;
  30. }

2.1代码输出结果

三、代码部分分析

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/736840
推荐阅读
相关标签
  

闽ICP备14008679号