常見排序演算法 java版本

2021-07-22 15:54:12 字數 2932 閱讀 3604

public

class

arraysort

/**

* 與冒泡相似,每一趟找到自i到末端最小的數的index,然後與i交換

* 一趟只需一次交換,所以比冒泡快

*/

private

static

void

xuanze

(intx,

intoff

,int

len)

swap(x

,i,min

);

}

}

/**

* i從左至右,i定住時將自i到末端最小的數移至i處,完成一趟,以此類推直至i到最右端

* 通過不停交換完成,時間消耗較多

*/

private

static

void

maopao

(intx,

intoff

,int

len)

}

}

/**

* 快速排序法:首先任意選取乙個資料作為關鍵資料,然後將所有比它小的數都放到它前面,

* 所有比它大的數都放到它後面,這個過程稱為一趟快速排序。之後遞迴。

* 演算法:

* 1)i從左到右找比key大的,i移至此處;j從右到左找比key小的,j移至此處

* 2)若i

* 3)一趟完成之後i如果未到最右端,遞迴右端;j如果未到達最左端,遞迴左端

* 此演算法可改進,請參詳jdk原始碼。

*/

private

static

void

kuaisu

(intx,

intoff

,int

len)

swap(x

,i,j

);

system

.out

.printf

("swap %d %d:%s/n",i

,j,arrays

.tostring(x

));

}

if(

i <

right

)

kuaisu(x

,i +1

,right -i

);

if(

j >

left

)

kuaisu(x

,left,j

-left

);

}

/**

* 求數值處於中間的下標

*/

private

static

intmed3

(intx,

inta

,intb,

intc

)

/** 在陣列x中交換a b位置 */

private

static

void

swap

(intx,

inta

,int

b)

public

static

void

main

(string

args

)

;

system

.out

.println

("begin..."

+arrays

.tostring(x

));

/*

maopao(x, 0, x.length);

xuanze(x, 0, x.length);

charu(x, 0, x.length);

*/

kuaisu(x

,0,x

.length

);

system

.out

.println

("final..."

+arrays

.tostring(x

));

}

}

java常見排序演算法

package algorithms public class arraydemo int max getmax arr arr sort2 arr int start 0 int end arr.length 1 sort3 arr,start,end print arr public stati...

Java常見排序演算法

氣泡排序 氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。public static vo...

java常見排序演算法

1.直接插入排序 public static void insertsort int array array j 1 temp system.out.println arrays.tostring array insertsort 2.希爾排序 希爾排序,也稱遞減增量排序演算法,是插入排序的一種更高...