常見排序之Java實現

2021-09-02 16:01:33 字數 2905 閱讀 5931

public

class

test ;

system.out.println(arrays.tostring(arrs)) ;

//mergesort(arrs, 0, arrs.length-1) ;

//quicksort(arrs, 0, arrs.length - 1) ;

heapsort(arrs) ;

system.out.println(arrays.tostring(arrs)) ;

}}

private

static

void

swap

(int array, int low, int high)

public

static

void insertsort(int arr)

else }}

}

public static void selectsort(int arr) }}

}

public

static

void

bubblesort

(int arr)}}

}

public

static

void

mergesort

(int arr, int low, int high)

}public

static

void

merge

(int arr, int left, int center, int right)

else

}//拷貝剩餘元素

while(left <= center)

while(r1 <= right)

//將臨時陣列中的元素拷貝至原陣列

k = 0 ;

for(int i=start; i<=right ; i++)

}

public static void mergesort(int arr)       //元素個數小於step

merge(arr, low, mid, high);

low = high + 1 ; //下次歸併的下界}}

}public static void merge(int arr, int left, int center, int right)

else

}//拷貝剩餘元素

while(left <= center)

while(r1 <= right)

//將臨時陣列中的元素拷貝至原陣列

k = 0 ;

for(int i=start; i<=right ; i++)

}

public

static

void

quicksort

(int array, int low, int high)

}private

static

intpartition

(int array, int low, int high)

swap(array, low, high) ;

while(low < high && pivot >= array[low])

swap(array, low, high) ;

}return low ;

}

public

static

void

quicksort

(int array)

//儲存劃分後所形成空間的左右端點

stackstack = new stack() ;

stack.push(0) ;

stack.push(array.length - 1) ;

int low, high ;

while(! stack.isempty())

int i = partition(array, low, high) ;

stack.push(low) ; //儲存左邊的區間

stack.push(i-1) ;

stack.push(i+1) ; //儲存右邊的區間

stack.push(high) ;}}

private

static

intpartition

(int array, int low, int high)

swap(array, low, high) ;

while(low < high && pivot >= array[low])

swap(array, low, high) ;

}return low ;

}

public

static

void heapsort(int heap)

}public

static

void buildheap(int heap)

}public

static

void adjustheap(int heap, int

size, int start)

if(right<=size && heap[right]>heap[big])

if(start == big) //調整完畢

else }}

常見排序之Java實現

public class test system.out.println arrays.tostring arrs mergesort arrs,0,arrs.length 1 quicksort arrs,0,arrs.length 1 heapsort arrs system.out.print...

Java實現常見的排序演算法之快排(快速排序)

對於快排,無論是看別人面經,還是自己親身的筆試面試經歷,都是經常會遇到的。所以在此,本人僅通過部落格的形式記錄下來,以便自己查閱,或給其他有需要的人用作參考也好。public class sortmethods int datasorted quicksort testdata,0,testdata...

Java實現幾種常見排序方法

1.冒泡演算法 就是每次相鄰的兩個元素比較,如果第乙個比第二個大,就交換位置,大的 下沉 小的 上漂 迴圈每次找出最大的那個,以此類推,比較length 1次。2.選擇排序 選擇排序是一種簡單直觀的排序方法,每次尋找序列中的最小值,然後放在替換當前迴圈的最小位的位置。3.插入排序 認為第乙個元素已經...