<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 對包含兩種類型元素的數組進行排序 > 原文: [https://www.geeksforgeeks.org/sort-array-containing-two-types-elements/](https://www.geeksforgeeks.org/sort-array-containing-two-types-elements/) 給我們一個隨機順序為 0 和 1 的數組。 分隔數組左側的 0 和右側的 1。 遍歷數組僅一次。 **示例**: ``` Input : arr[] = [0, 1, 0, 1, 0, 0, 1, 1, 1, 0] Output : arr[] = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1] Input : arr[] = [1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1] Output : arr[] = [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1] ``` 我們已經討論了解決方案[將數組 0 和 1 分離為](https://www.geeksforgeeks.org/segregate-0s-and-1s-in-an-array-by-traversing-array-once) 在這篇文章中,討論了一個新的解決方案。 **步驟 1**:在這里,我們可以采用兩個指針,即類型 0(對于元素 0)從開頭(索引= 0)開始,以及類型 1(對于元素 1)從結束索引開始。 **步驟 2**:我們打算將 1 放置在數組的右側。 一旦完成此操作,則將向數組的左側肯定為 0 即可完成此操作。 我們比較索引類型為 0 的元素 1)如果為 1,則應將其移到右側,因此一旦交換,我們需要將其與索引類型 1 交換,我們確定索引類型 1 的元素為'1',因此 我們需要遞減索引 type1 2)否則它將是 0,那么我們需要簡單地遞增索引 type0 ## C++ ```cpp // CPP program to sort an array with two types // of values in one traversal. #include <bits/stdc++.h> using namespace std; /* Method for segregation 0 and 1 given? ???input array */ void segregate0and1(int arr[], int n) { ????int type0 = 0; ????int type1 = n - 1; ????while (type0 < type1) { ????????if (arr[type0] == 1) { ????????????swap(arr[type0], arr[type1]); ????????????type1--; ????????} ????????else { ????????????type0++; ????????} ????} } // Driver program int main() { ????int arr[] = { 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1 }; ????int n = sizeof(arr)/sizeof(arr[0]); ????segregate0and1(arr, n); ????for (int a : arr) ????????cout << a << " "; } ``` ## Java ```java // Java program to sort an array with two types // of values in one traversal.public class GFG { ????/* Method for segregation 0 and 1? ?????????given input array */ ????static void segregate0and1(int arr[], int n) { ????????int type0 = 0; ????????int type1 = n - 1; ????????while (type0 < type1) { ????????????if (arr[type0] == 1) { ????????????????// swap type0 and type1 ????????????????arr[type0] = arr[type0] + arr[type1]; ????????????????arr[type1] = arr[type0]-arr[type1]; ????????????????arr[type0] = arr[type0]-arr[type1]; ????????????????type1--; ????????????} else { ????????????????type0++; ????????????} ????????} ????} ????// Driver program ????public static void main(String[] args) { ??????????int arr[] = { 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1 }; ??????????segregate0and1(arr, arr.length); ??????????for (int a : arr) ??????????????System.out.print(a+" "); ??????} } ``` ## Python3 ```py # Python3 program to sort an array with? # two types of values in one traversal. # Method for segregation 0 and? # 1 given input array? def segregate0and1(arr, n): ????type0 = 0; type1 = n - 1 ????while (type0 < type1):? ????????if (arr[type0] == 1):? ????????????arr[type0], arr[type1] = arr[type1], arr[type0] ????????????type1 -= 1 ????????else:? ????????????type0 += 1 # Driver Code arr = [1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1]? n = len(arr) segregate0and1(arr, n) for i in range(0, n): ????print(arr[i], end = " ") # This code is contributed by Smitha Dinesh Semwal ``` ## C# ```cs // C# program to sort an array with two types // of values in one traversal. using System; class GFG { ????static void segregate0and1(int []arr, int n) ????{ ????????int type0 = 0; ????????int type1 = n - 1; ????????while (type0 < type1) ????????{ ????????????if (arr[type0] == 1) ????????????{ ????????????????// swap type0 and type1 ????????????????arr[type0] = arr[type0] + arr[type1]; ????????????????arr[type1] = arr[type0]-arr[type1]; ????????????????arr[type0] = arr[type0]-arr[type1]; ????????????????type1--; ????????????}? ????????????else { ????????????????type0++; ????????????} ????????} ????} ????// Driver program ????public static void Main() ????{ ????????int []arr = { 1, 1, 1, 0, 1, 0, 0, ?????????????????????????????1, 1, 1, 1 }; ????????segregate0and1(arr, arr.Length); ????????for (int i = 0; i < arr.Length; i++) ????????????Console.Write(arr[i] + " "); ????} } // This code is contributed by vt_m. ``` ## PHP ```php <?php // PHP program to sort an array with two? // types of values in one traversal. /* Method for segregation 0 and 1? given input array */ function segregate0and1($arr, $n) { ????$type0 = 0; ????$type1 = $n - 1; ????while ($type0 < $type1) ????{ ????????if ($arr[$type0] == 1) ????????{ ????????????$temp = $arr[$type0]; ????????????$arr[$type0] = $arr[$type1]; ????????????$arr[$type1] = $temp; ????????????$type1--; ????????} ????????else? ????????{ ????????????$type0++; ????????} ????} ????return $arr; } // Driver Code $arr = array( 1, 1, 1, 0, 1, 0,? ?????????????????0, 1, 1, 1, 1 ); $n = count($arr); $arr1 = segregate0and1($arr, $n); for($i = 0; $i < $n ; $i++ ) echo $arr1[$i] . " "; // This code is contributed by Rajput-Ji ?> ``` Time Complexity : O(n) **輸出**: ``` 0 0 0 1 1 1 1 1 1 1 1 ``` * * * * * *
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看