public
class
xiersort
;sortmethod2
(arr)
; system.out.
println
(arrays.
tostring
(arr));
}/**
* 希爾排序
** @param arr
*/public
static
void
sortmethod
(int
arr)}}
}}/** * 移位法:對希爾排序進行優化
* 只需1s
** @param arr
*/public
static
void
sortmethod2
(int
arr)
arr[j]
= temp;}}
}}
public
class
bubblesort
;sortbubble
(arr)
; system.out.
println
(arrays.
tostring
(arr));
}private
static
void
sortbubble
(int
arr)}if
(!flag)
else}}
}
public
class
choosesort
;sortmethod
(arr)
; system.out.
println
(arrays.
tostring
(arr));
}public
static
void
sortmethod
(int
arr)}if
(minindex!=i)}}
}
public
class
insertsort
;sortmethod
(arr)
; system.out.
println
(arrays.
tostring
(arr));
}public
static
void
sortmethod
(int
arr)
arr[insertindex+1]
=insertval;}}
}
public
class
bubble_quick
;//測試快排的執行速度
// 建立要給80000個的隨機的陣列
int[
] arr =
newint
[8000000];
for(
int i =
0; i <
8000000
; i++
) system.out.
println
("排序前");
date data1 =
newdate()
; ******dateformat ******dateformat =
new******dateformat
("yyyy-mm-dd hh:mm:ss");
string date1str = ******dateformat.
format
(data1)
; system.out.
println
("排序前的時間是="
+ date1str)
;quicksort
(arr,
0, arr.length-1)
; date data2 =
newdate()
; string date2str = ******dateformat.
format
(data2)
; system.out.
println
("排序前的時間是="
+ date2str)
;"arr=" + arrays.tostring(arr));
}public
static
void
quicksort
(int
arr,
int left,
int right)
//在pivot的右邊一直找,找到小於等於pivot值,才退出
while
(arr[r]
> pivot)
//如果l >= r說明pivot 的左右兩的值,已經按照左邊全部是
//小於等於pivot值,右邊全部是大於等於pivot值
if( l >= r)
//交換
temp = arr[l]
; arr[l]
= arr[r]
; arr[r]
= temp;
//如果交換完後,發現這個arr[l] == pivot值 相等 r--, 前移
if(arr[l]
== pivot)
//如果交換完後,發現這個arr[r] == pivot值 相等 l++, 後移
if(arr[r]
== pivot)
}// 如果 l == r, 必須l++, r--, 否則為出現棧溢位
if(l == r)
//向左遞迴
if(left < r)
//向右遞迴
if(right > l)
}}
冒泡 選擇 插入 希爾排序
include include include using namespace std template void print const t a,int n 氣泡排序 每次迴圈總是將最大元素移到隊尾 o n 2 穩定的排序演算法 templatevoid bubblesort t a,int n ...
排序演算法 冒泡 選擇 插入與希爾排序
思路分析 依次比較相鄰的兩個數 將比較小的數放在前面,比較大的數放在後面 第一趟比較完後,最小的數放在第一位 那麼在第二趟的時候不需要再對第一位數進行比較 依次類推,每一趟比較次數依次減小 c 實現 include using namespace std void show int arr,int ...
氣泡排序 選擇排序 插入排序 希爾排序 快速排序
這張圖映象了,當然也可以看明白,再賦另一張圖 快速排序 定乙個基準點,一般以左側為基準點,兩個指標 i,j右側 先j 左,遇到小於基準點停下,再i 右,遇到大於基準點,交換兩個元素。再次 移動j和i相同操作,直到j i,這時交換這個點和基準點,這個時候,陣列排序 左側為 小於基準點,右側大於基準點。...