<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 使用 STL 根據因素數量進行排序 > 原文: [https://www.geeksforgeeks.org/sort-basis-number-factors-using-stl/](https://www.geeksforgeeks.org/sort-basis-number-factors-using-stl/) 給定一個正整數數組。 以每個元素的因子數量降序對給定數組進行排序,即應首先顯示因子數量最多的元素,而因子數量最少的元素應最后顯示。 具有相同數量因子的兩個元素應與原始數組中的順序相同。 例子: ``` Input : {5, 11, 10, 20, 9, 16, 23} Output : 20 16 10 9 5 11 23 Number of distinct factors: For 20 = 6, 16 = 5, 10 = 4, 9 = 3 and for 5, 11, 23 = 2 (same number of factors therefore sorted in increasing order of index) Input : {104, 210, 315, 166, 441, 180} Output : 180 210 315 441 104 166 ``` 我們已經討論了一種基于[結構的解決方案,可以根據因素數](https://www.geeksforgeeks.org/sort-elements-basis-number-factors/)進行分類。 以下步驟按因子計數的降序對數字進行排序。 1. 計算每個元素的不同數量的因素。 請參考。 2. 創建[對](https://www.geeksforgeeks.org/pair-in-cpp-stl/)的[向量](http://www.geeksforgeeks.org/vector-in-cpp-stl/),該向量存儲元素及其因子計數。 3. 使用任何排序算法,根據問題陳述對該數組進行排序。 ``` // Sort an array of numbers according // to number of factors. #include <bits/stdc++.h> using namespace std; // Function that helps to sort elements? // in descending order bool compare(const pair<int, int> &a, ?????????????const pair<int, int> &b) { ??return (a.first > b.first); } // Prints array elements sorted in descending // order of number of factors. void printSorted(int arr[], int n) { ??vector<pair<int, int>> v; ??for (int i = 0; i < n; i++) { ????// Count factors of arr[i]. ????int count = 0; ????for (int j = 1; j * j <= arr[i]; j++) { ??????// To check Given Number is Exactly ??????// divisible ??????if (arr[i] % j == 0) { ????????count++; ????????// To check Given number is perfect ????????// square ????????if (arr[i] / j != j) ??????????count++; ??????} ????} ????// Insert factor count and array element ????v.push_back(make_pair(count, arr[i])); ??} ??// Sort the vector ??sort(v.begin(), v.end(), compare); ??// Print the vector ??for (int i = 0; i < v.size(); i++)? ????cout << v[i].second << " "; } // Driver's Function int main() { ??int arr[] = {5, 11, 10, 20, 9, 16, 23}; ??int n = sizeof(arr) / sizeof(arr[0]); ??printSorted(arr, n); ??return 0; } ``` **輸出**: ``` 20 16 10 9 5 11 23 ``` 時間復雜度:O(n * sqrt(n)) 輔助復雜度:`O(n)` * * * * * *
                  <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>

                              哎呀哎呀视频在线观看