Accp java 插入排序

      問題描述:
      有一個有序的數據序列,要求在這個已經排好的數據序列中插入一個數,但要求插入后此數據序列仍然有序,解決這種為題的方法用到一種新的排序方法——插入排序法。
      具體算法描述如下:
        1. 從第一個元素開始,該元素可以認為已經被排序
        2. 取出下一個元素,在已經排序的元素序列中從后向前掃描
        3. 如果該元素(已排序)大于新元素,將該元素移到下一位置
        4. 重復步驟3,直到找到已排序的元素小于或者等于新元素的位置
        5. 將新元素插入到下一位置中
        6. 重復步驟2
      以下是java版插入排序的實現過程。
      實現的步驟:

      1. 創建一個有序的數列,此數列稱為源數組。
      Int []num={1,2,3,5,6,7}

      2. 從控制臺接收一個插入的數是4
      Scanner input=new Scanner(System.in);
      Int n=input.nextInt();

      3. 當把4插入進源數組后,就應該有一個新數組比源數組的個數多一個,
      所以,創建一個新數組。
      Int []newNum=new int[num.length+1];

      4. 需要把源數組的值放入新數組
      for(int i=0;i<newNum.length;i++)
      {
      newNum[i]=num[i];
      }

      經過這樣的賦值數組就變成了如圖所示:

      5.用插入的數字4和源數組的每一個數比較來確定4要插入的位置。 紅色數字是下標

      定義一個插入的位置:
      Int index=0;
      循環比較,如果插入數n=4比源數組里的某一個數大,那就把4放入該數的后面
      for(int i=0;i<newNum.length;i++)
      {
      If(n>newNum[i])
      Index=i+1;
      }

      5. 確定好插入數位置后,就要把該位置后面的數字向上移動,請注意:移動的時候一定從最后一個開始。也就是先把數字7移動下標為6的位置,再把數字6移動到下標為5的位置,以此類推。
      for(int i=newNum.length-1;i>index;i--)
      {
      newNum[i]=newNum[i-1];
      }

      6. 通過以上的移動已經把index位置空出來,接下來就要把n=4放在index位置
      newNum[index]=4;

      7. 最后輸出newNum新數組的所有值
      for(int i=0;i<newNum.length;i++)
      {
      System.out.println(newNum[i]);
      }

      北大青鳥通州版權所有

      北大青鳥網上報名
      北大青鳥招生簡章
      主站蜘蛛池模板: 一区二区三区免费看| 在线观看国产一区二区三区| 四虎精品亚洲一区二区三区| 日本精品一区二区在线播放| 中文字幕一区二区区免| 亚洲色无码专区一区| 看电影来5566一区.二区| 性色av闺蜜一区二区三区| 亚洲一区中文字幕在线电影网| 中文字幕一区二区视频| 久久99国产一区二区三区| 国产精品一区二区电影| 日韩色视频一区二区三区亚洲| 国产福利一区二区三区| 波多野结衣一区视频在线| 老熟妇仑乱一区二区视頻| 亚欧色一区W666天堂| 鲁丝片一区二区三区免费| 国精品无码一区二区三区在线蜜臀 | 亚洲va乱码一区二区三区| 日韩人妻一区二区三区免费 | 久久久国产精品一区二区18禁| 精品国产毛片一区二区无码| 精品国产毛片一区二区无码| 久久久久人妻精品一区三寸蜜桃 | 三上悠亚日韩精品一区在线| 亚洲一区精品伊人久久伊人| 精品一区二区三区免费视频| 夜夜添无码试看一区二区三区| 国偷自产一区二区免费视频| 亚洲电影国产一区| 精品国产aⅴ无码一区二区| 国产乱码一区二区三区四| 久久青青草原一区二区| 国产一区二区三区亚洲综合| 一区二区三区四区在线观看视频| 国产婷婷一区二区三区| 日韩在线不卡免费视频一区| 亚洲综合在线一区二区三区| 精品视频一区在线观看| 成人精品一区二区三区不卡免费看 |