如何将移位元素功能与插入排序结合?

问题描述 投票:1回答:1

我有一个问题:我被要求编写一个与插入排序有关的函数。通过给出一个数字,该函数会将下一个i值向右移动,并注意“ i值”的最后一个值将被上一个i值超出。例如:9,8,7,6,5且数字为i = 2:将变为:9,8,7,7,6而5超过了。

到目前为止,这是我编写的代码:

    public static void shift(int [] arr, int i) {
    if(i < arr.length / 2) {
        for(int j = i + i; j > i; j--) {
            arr[j] = arr[j - 1];
        }
    }

    else {
        for(int j = arr.length - 1; j > i; j--) {
            arr[j] = arr[j - 1];
        }
    }
}

现在,我需要将其与插入排序结合使用,但尝试失败。有人可以帮忙吗?谢谢。

java insertion-sort
1个回答
0
投票

我到目前为止所得到的,我可能是错的,在这种情况下,请发表评论以便我可以纠正。

public static void shift(int [] arr, int i) 
   {
      if(i <= arr.length-2)  //  when i > (arr.length-2) shifting doesn't make any effect
      {
         int tmp = arr[i+1];    //  tmp will hold the overwritten element for future use. 
         arr[i+1] = arr[i];
      }
   }

现在,您要按插入排序对其进行排序吗?

© www.soinside.com 2019 - 2024. All rights reserved.