演算法 基於資料交換的排序

2021-09-26 07:08:23 字數 1881 閱讀 1005

public static void sort(int array)}}

}

思路:找到比a[i]大的a[j]值就進行交換

public static void sort(int array)}}

}

特點:

時間複雜度:o(n^2)

public static void sort(int array) 

int flag = array[i];

for (int k = i - 1; k >= j; k--)

array[j] = flag;}}

}

注意:(int)3/2 = 1

public static void sort(int array, int start, int end) 

}public static void merge(int array, int start, int mid, int end)else

}while (i <= mid)

while (j<= end)

for (int i1 = 0; i1 < arr.length; i1++)

}

參考:歸併排序

要點:

public static void sort(int array, int start, int end) 

if (high > low)

while (array[low] <= key && low < high)

if (high > low)

}array[low] = key;

//排左邊

sort(array, start, low);

//排右邊

sort(array, low + 1, end);}}

參考:堆排序演算法

初始堆建立堆

思路:首先要進行堆初始化,即從最後乙個非葉子結點調整堆,這樣的結果是次大值維持在第二層,這樣在節點數量減少時,可以從頭結點初始堆。

public static void sort(int array) 

//每次將頭結點與最後乙個節點進行交換

for (int i = length - 1; i >= 0; i--)

}/**

** @param array

* @param length 要調整的堆中元素的個數

* @param i 傳過來的父節點**/

8種排序的比較

演算法訓練 資料交換

問題描述 編寫乙個程式,輸入兩個整數,分別存放在變數x和y當中,然後使用自己定義的函式swap來交換這兩個變數的值。輸入格式 輸入只有一行,包括兩個整數。輸出格式 輸出只有一行,也是兩個整數,即交換以後的結果。要求 主函式負責資料的輸入與輸出,但不能直接交換這兩個變數的值,必須通過呼叫單獨定義的函式...

資料交換 電路交換

為什麼要資料交換 那麼有幾個問題 1.n 2鏈路問題,有n個網路要相互連線 之後就想了乙個辦法,產生交換裝置進行連線 這樣子還有個問題,距離,連通性的問題 這樣就產生了交換網路 動態分配傳輸資源 實現資料從源主機穿越交換網路到達目的機 資料交換的型別 電路交換 報文交換 分組交換 最典型電路交換網路...

氣泡排序中資料交換的次數

problem description 聽說過氣泡排序麼?一種很暴力的排序方法。今天我們不希望你用它來排序,而是希望你能算出從小到大氣泡排序的過程中一共進行了多少次資料交換。input 輸入資料的第一行為乙個正整數 t 表示有 t 組測試資料。接下來t行,每行第乙個整數n,然後有n個整數,無序。0o...