Java 快速排序 整理知識點

2021-08-28 09:10:18 字數 1037 閱讀 3847

1.什麼是排序?

排序是按照某種順序(公升序或者降序)排列序列元素的一種演算法。

2.為什麼需要排序?

排序是電腦科學中的重要演算法,排序有時候可以顯著降低問題的複雜度,可以使用排序作為減少查詢複雜度的一種技術。鑑於排序的重要性,已有針對排序演算法的大量研究並將其用於多種計算機演算法(例如:查詢元素)、資料庫演算法和其他的演算法中。

3.快速排序

快速排序(quicksort)是分治演算法技術的乙個例項,也稱為分割槽交換排序。快速排序採用遞迴呼叫對元素進行排序,是基於比較的排序演算法中的乙個著名演算法。

劃分:陣列a[0…n]被分成a[0,…,mid] 和 a[mid+1 ,…,n],使得分開的兩個陣列,前者的元素全部小於後者的元素,然後再劃分的過程中不斷的計算key的索引位置。

分而治之:對第一遍區分出來的陣列進行遞迴快速排序。

演算法思路:

1)如果陣列中僅有乙個元素或者沒有元素需要排序,則返回。

2)選擇陣列中的乙個元素作為key(通常是第乙個元素)。

3)先進行第一次排序,然後分成兩部分:一部分大於key,一部分小於key。

4)對這兩部分使用遞迴,呼叫該演算法。

原始碼如下:

public static int quicksort(int arr, int low, int hight) 

int left = low, right = hight, key = arr[low]; // 初始化變數

while (left < right)

while (left < right && key >= arr[left])

if (left < right)

} int temp = arr[right];

arr[right] = arr[low];

arr[low] = temp;

quicksort(arr, low, right - 1);

quicksort(arr, right + 1, hight);

return null;

}

整理知識點

python中的變數不需要宣告。每個變數在使用前都必須賦值,變數賦值以後該變數才會被建立。在python 中,變數就是變數,它沒有型別,我們所說的 型別 是變數所指的記憶體中物件的型別。乙個變數可以通過賦值指向不同型別的物件。python3 有六個標準的資料型別 不可變資料 number 數字 st...

Java基礎整理 volatile知識點總結

volatile特性 為什麼保證可見性 無法解決執行緒安全問題 當出現多寫場景時無法保證原子性 public class test public static void main string args start while thread.activecount 1 保證前面的執行緒都執行完 th...

整理 CSS知識點

1 css注釋 這是個注釋 2 選擇器 id 選擇器 para1 class 選擇器 center p.center class為center的所有p元素 3 css建立 外部樣式表 內部樣式表 內聯樣式 this is a paragraph.層疊次序 當同乙個 html 元素被不止乙個樣式定義時...