交換排序的思想是,比較兩個元素的大小,然後確定是否交換位置,主要分為兩種
氣泡排序,依次比較相鄰的兩個元素,把最值放在頭部或者尾部,接下來再用同樣的方法取最值放在頭部或尾部。**如下
void
bubblesort
(int a,
int n)}}
}
快速排序,首先設定乙個分界值,然後通過分界值,將陣列分成兩部分,比如,一部分大於這個值,另一部分小於這個值。然後再從兩部分中取分界值,遞迴操作。**如下
// 遞迴實現
void
quicksort
(int arr,
int left,
int right)
arr[i]
= base;
quicksort
(arr, left,i-1)
;quicksort
(arr, i+
1,right)
;}
演算法複雜度分析
快速排序基於分治思想,log以2為底,一遍找元素o(n),一遍找位置o(logn)
排序演算法之交換排序
交換排基本思想 兩兩比較待排序元素的關鍵字,發現兩個元素的次序相反時即進行交換,知道沒有反序的元素為止。本節介紹兩種交換排序,即氣泡排序和快速排序。氣泡排序 每次只能和相鄰的位置數進行交換,效率低 include int a 100 void quicksort int left,int right...
排序演算法之交換排序
交換,就是根據序列中兩個元素關鍵字的比較結果來對換這兩個記錄在序列中的位置。基於交換的排序 演算法有很多。以氣泡排序和快速排序舉例。氣泡排序 public static int bubblesort int array return newarray 穩定性 氣泡排序是乙個穩定的排序方法。氣泡排序中...
排序演算法之交換排序
交換排序有 氣泡排序和快速排序 演算法思想 冒泡遍歷所有的資料,每次對相鄰元素進行兩兩比較,如果順序和預定規定的順序不一致,則進行位置交換 這樣依次遍歷會將最大或最小的資料上浮到頂端,之後對於其他元素重複相同的操作,直到所有的資料有序。即 如果要公升序排序的話,就每次兩兩比較,將較大的元素交換到後面...