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 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab