排序演算法(不定時更新 )

2021-06-28 06:08:01 字數 1927 閱讀 7143

插入排序:

/**

* 插入排序

* 初始時,拿第二個和第乙個比較,如果第二個小於第乙個,兩個交換

* 當進行到第n次時,前面的n-1個順序應該是正確的

* 拿第n個和前面的n-1個數比較,如果第m個小於n,m+1大於n,則把n插到m和m+1中間

* 相當於將n和前乙個數比較,如果前乙個數大於n,則把前乙個移動到n的位置上,內層的每個迴圈都是將大於n的數字在向後移以為,也就相當於是將n插在兩個之間。

* * 時間複雜度:n+(n-1)+(n-2)+...+1 = (n+1)n/2=n^2 o(n^2) 空間複雜度:o(1) 穩定

* @title: insertionsort

* @author: wanglh3

* @description: todo

* @param numbers

* @return void

*/

public static void insertionsort(int numbers)

}system.out.println(j+"----"+temp);

numbers[j+1] = temp;

} }

二分排序演算法應該是插入排序的優化演算法,插入時不從一端查詢,而是從中間開始查詢。

氣泡排序

/**

* 氣泡排序

* 從後往前,先把最小的移到第一位,然後迴圈,把次小的移到第二位

* 氣泡排序法的改進:

* 1.設定乙個標誌變數,如果某一次排序中,沒有進行交換,就可以停止排序

* 2.設定乙個記錄,標誌某位之後都已經進行排序,之後排序時,無需對之後的元素進行比較

* 3.正向逆向同時排序

* * 時間複雜度:o(n^2) 空間複雜度o(1) 穩定

* @title: bubblesort

* @author: wanglh3

* @description: todo

* @param numbers

* @return void

*/public static void bubblesort(int numbers)

}} }

選擇排序

/**

* 選擇排序

* 從未排序的數中,選出最小的,與未排序的第乙個數值交換

* 改進方法:二元選擇排序

* 每次迴圈選出最大的和最小的,最小的和前面的交換,最大的和後面的交換

* 時間複雜度:o(n^2) 空間複雜度o(1) 不穩定

* @title: selectionsort

* @author: wanglh3

* @description: todo

* @param numbers

* @return void

*/public static void selectionsort(int numbers)

public static void _quicksort(int numbers,int low,int high)

} //

public static int partition(int numbers,int low,int high)

numbers[low] = numbers[high];

while(low < high && numbers[low] <= privotkey)

numbers[high]=numbers[low];

system.out.println();

} numbers[low] = privotkey;

return low;

} //------------快排end----------------

Frameworks 不定時更新

ios4.0引入了accelerate框架,該框架的介面可用於執行數學 大數字以及dsp運算。和開發者個人編寫的庫相比,該礦建的優點在於它根據現存的各種ios裝置的硬體配置進行過優化。因此,只需一次編碼就可以確保它所有裝置高效執行。accounts 框架給某乙個使用者賬戶提供乙個單一的登入模型。單一...

JDBC總結(不定時更新)

那些名詞 jdbc配置 註冊驅動器類 解壓jar包可以找到driver.class其路徑即是名字 法一 class.forname com.mysql.jdbc.driver 法二 system.setproperty jdbc.drivers com.mysql.jdbc.driver mysql...

Linux指令(不定時更新)

以下是我在操作過程中用到的一些指令及其用法。1 ls指令,用於列出當前目錄的檔案 通過新增 l引數可以使檔案以詳情模式列出 通過新增 a引數可以將包含隱藏檔案在內的全部檔案列出。用法 ls l 2 lsblk指令 除了ram之外,以標準樹狀格式輸出檔案 常用於了解新插入的usb裝置名字 可以通過新增...