在 Java 中,如何將所有 0 移動到數組的末尾保留數組的順序? [2種方式]

已發表: 2020-12-31
在 Java 中,如何將所有 0 移動到數組的末尾保留數組的順序? [2種方式]

我一直在解決在不同的採訪中以各種組合moving all 0's to end的問題。 有時我要求將所有的 0 移到數組的前面,對沒有任何數據結構的數組進行排序等等。

在本教程中,我們將介紹移動所有 0 以結束保留數組順序的簡單示例。 有兩種方法。

方法-1)

QuickSort 分區邏輯。 什麼是樞軸點?

  • Pivot point是快速排序算法中的一個關鍵元素。 它圍繞樞軸點執行和分區集合。
  • 它將大於樞軸的元素排列在它之前,將大於樞軸的元素排列在它之後。
  • 繼續循環以對數組進行排序

邏輯很簡單:

  • 遍歷一個數組。
  • 如果 array[i] 不等於 0,則將其與當前索引交換。
  • 如果array[i] == 0,簡單地跳過循環
  • 在我們的例子0 is a Pivot point
  • 每次我們找到 0,計數器樞軸將增加,元素將在樞軸點之前移動。

方法-2)

  • 創建一個相同大小的新數組
  • 遍歷數組並跳過添加 0

這是一個完整的程序:

CrunchifyMoveAll0ToEnd.java

Eclipse 控制台輸出:

如果您知道解決此問題的更好方法,請告訴我。 我很想听聽你的想法。