希爾 冒泡 選擇 插入 快速排序演算法的實現

2021-09-29 14:08:20 字數 3067 閱讀 5158

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,這時交換這個點和基準點,這個時候,陣列排序 左側為 小於基準點,右側大於基準點。...