当前位置:   article > 正文

java实现插入排序_java 添加一条记录有排序

java 添加一条记录有排序

打扑克就是插入排序的典型例子,特别经典

将数据分为两部分,一部分是排好序的,另外一部分是无序,把无序的数据一个一个插入到排好序的序列中。

时间复杂度:O(n^2)     稳定性:稳定  

实现步骤:

  1. 将数组分成已排序段和未排序段,最开始时已排序段只有一个元素;
  2. 从未排序段取出元素插入到已排序段,并保证插入后仍然有序;
  3. 重复执行1、2步操作,直到未排序段元素全部排完。

代码实现:

  1. public static void insertionSort(int [] arr){
  2. int len = arr.length;
  3. //i从1开始,因为最开始的时候,第一个元素步需要排序
  4. for (int i = 1; i < len; i++) {
  5. int data = arr[i];
  6. //从数组的后面往前比较,这样我们只需要交换两个数的位置
  7. //如果从数组前面开始比较,涉及到数据的整体移位
  8. int j = i - 1;
  9. while (j >= 0) {
  10. if(arr[j] > data){
  11. arr[j + 1] = arr[j];
  12. }else {
  13. break;
  14. }
  15. j --;
  16. }
  17. arr[j + 1] = data;
  18. }
  19. //输出排序结果
  20. for (int i = 0; i < len; i++) {
  21. System.out.print(arr[i] + " ");
  22. }
  23. System.out.println();
  24. }

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

闽ICP备14008679号