1.氣泡排序(交換排序)
依次比較相鄰元素,將較大的值交換到右邊,那麼第一趟走完,陣列中的最大值已經在最後一位了,接下來就把第二大的數歸位,第三大的數歸位…
public
static
void
dubblesort
(int
arr)}}
}
2.選擇排序(交換排序)設定最小元素的索引minindex,假設當前索引的元素為最小值minindex=i,如果出現後面元素比當前索引的元素小,就替換最小元素索引minindex=j,最後如果minindex!=i,就交換兩個索引的元素。
public
static
void
xzsort
(int
arr)}if
(minindex!=i)
}}
3.快速排序(交換排序)以陣列中的乙個元素為基準,將陣列中比基準小的元素放在基準的左邊,比基準大的元素放在基準的右邊。
public
static
void
quicksort
(int
arr,
int start,
int end)
arr[low]
=arr[high]
;while
(arr[low]
<=strad&&low
arr[high]
=arr[low];}
arr[low]
=strad;
//處理所有小的元素
quicksort
(arr,start,low)
;//處理所有大的元素
quicksort
(arr,low+
1,end);}
}
4.插入排序將乙個陣列分成兩部分,一部分為有序的,然後將無序部分的值乙個乙個插入有序的那部分中
}}5.希爾排序希爾排序,屬於插入排序的一種。
}}6.歸併排序
public
static
void
gbsort
(int
arr,
int low,
int high)
}private
static
void
merge
(int
arr,
int low,
int middle,
int high)
else
}while
(iwhile
(j<=high)
for(
int q=
0;q)}
7.堆排序將陣列轉換成樹的結構,進行排序
//堆排序 (公升序,大頂堆)
public
static
void
heapsort
(int
arr)
for(
int i=arr.length-
1;i>
0;i--)}
private
static
void
maxheap
(int
arr,
int size,
int index)
if(rightnode
>arr[max])if
(max!=index)
}
七種排序演算法
排序方法 平均情況 最好情況 最壞情況 輔助空間 穩定性插入排序 o n 2 o n o n 2 o 1 穩定希爾排序 o n log n o n 2 o n 1.3 o n 2 o 1 不穩定選擇排序 o n 2 o n 2 o n 2 o 1 不穩定氣泡排序 o n 2 o n o n 2 o ...
七種排序演算法總結
根據排序過程中借助的主要操作,將7種內排序演算法按照下圖所示進行分類。將7種演算法的各種指標進行對比,如下表所示。從平均情況來看,顯然最後3種改進演算法要勝過希爾排序,並遠遠勝過前3種簡單演算法。從最好情況看,反而冒泡和直接插入排序要更勝一籌,也就是說,如果待排序列總是基本有序,反而不應該考慮四種複...
七種常用排序演算法總結
1.氣泡排序 bubble sort package com.zha.wmls.sort 氣泡排序 每一輪找出乙個最大的,放在最後面,穩定 時間複雜度為n 2 public class bubblesort long befortime system.currenttimemillis sort a...