選擇排序的有序化是從第頭開始有序化的。如:n個元素 (從小向大排序)
第乙個和後面n-1個元素一一比較
如果發現後面元素的比他小 交換他們兩
一輪下去就可以保證第乙個元素是最小的
後面從第二個元素開始往後面比較 重複以上步驟直到倒數第二個數字
public
class
xuanze
;for
(int i =
0; i < a.length; i++)}
}for
(int i =
0; i < a.length; i++)}
}
又名 大數沉底演算法有序化一般是從末端開始的
相鄰的兩個數比較 如果不符合比較規則的話就交換
public
class
maopao
;int flag=0;
for(
int i =
0; i 1; i++)}
}for
(int aa:a)
}}
以乙個陣列作為示例,取區間第乙個數為基準數。01
2345
6789
7265788
6042
8373
4885
第一次排序下後01
2345
6789
4865742
6072
8373
8885
分治 遞迴的思想分治:選取乙個中間數值
從前向後比 比中間值小或者等於的放在左邊
從後往前比較 比中間值大的放在右邊
遞迴:這樣這個數列分成了兩個數列 在用遞迴對這兩個數列進行相同的操作 知道數列中只有乙個元素為止 排序完成
package paixu;
public
class
kuaisu
;sort
(a,0
,a.length-1)
;for
(int i:a)
}public
static
void
sort
(int
a,int low,
int high)
int left = low;
int right = high;
//儲存基準值
int pivot = a[left]
;while
(left < right)
// 放置基準值,準備分治遞迴快排
//左邊和右邊相等的時候把中間值給這個位置
if(left==right)
a[left]
= pivot;
//遞迴來
sort
(a, low, left -1)
;//左
sort
(a, left +
1, high)
;//右邊
}}
平均複雜度為nlogn
最好
logn
最差 1/2 n^2
實用排序演算法整理 Python
def bubble sort nums n 2 1 n len nums for i in range n for j in range n 2,i 1,1 if nums j nums j 1 nums j nums j 1 nums j 1 nums j return nums def sho...
簡單實用演算法 氣泡排序
變數定義 注 氣泡排序如果能在內部迴圈第一次執行時,使用乙個bool值來表示有無需要交換的可能,也有可能把最好的複雜度降低到o n 在這個情況,在已經排序好的數列就無交換的需要。演算法 c 氣泡排序 public void bubblesort intnums if exchange 本趟排序未發生...
簡單實用演算法 氣泡排序
變數定義 注 氣泡排序如果能在內部迴圈第一次執行時,使用乙個bool值來表示有無需要交換的可能,也有可能把最好的複雜度降低到o n 在這個情況,在已經排序好的數列就無交換的需要。演算法 c 氣泡排序 public void bubblesort intnums if exchange 本趟排序未發生...