Monin Liao 2023-01-27 10:36 采纳率: 71.4%
浏览 27
已结题

Java插入排序算法不会

下面的代码谁给仔细讲讲

package com.example;

public class Main {
  public static void main(String[] args) {
    int[] arr = {10,2,6,9,5,3,4,7,8,0,1};
    
    insertSort(arr);
    
    for (int i=0; i<arr.length; i++) {
      System.out.print(arr[i]+" ");
    }
  }
  
  static void insertSort(int[] arr) {
    for (int i=0; i<arr.length; i++) {
      int insertVal = arr[i];
      int index = i-1;
      
      while ((index >= 0) && (insertVal < arr[index])) {
        arr[index+1] = arr[index];
        index--;
      }
      
      arr[index+1] = insertVal;
    }
  }  
}
  • 写回答

2条回答 默认 最新

  • 社区专家-Monster-XH 2023-01-27 10:57
    关注

    有用请采纳:这段代码实现了插入排序算法。首先,在main函数中,创建了一个int类型的数组arr,并赋值。然后调用insertSort函数对arr数组进行排序。最后使用for循环遍历arr数组并输出每个元素。

    insertSort函数中,使用了一个外层循环,将数组arr中的每一个元素都依次插入到已排好序的数组中。内层循环使用while语句,将当前元素insertVal与已排好序的数组中的元素进行比较,如果insertVal小于已排好序数组中的元素,则将已排好序数组中的元素后移一位,直到找到合适的位置,将insertVal插入到该位置。这样就完成了一趟插入排序。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月27日
  • 已采纳回答 1月27日
  • 创建了问题 1月27日

悬赏问题

  • ¥15 蓝桥oj3931,请问我错在哪里
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染