排序演算法java實現

2021-08-04 08:03:07 字數 3149 閱讀 2495

選擇排序類

交換排序類

歸併排序類

附工具類

直接插入排序

public

class

insertionsorter

a[j] = tmp;

// arrayutils.printarray(a);}}

public

static

super anytype>> void

sort(anytype a, int left, int right)

a[j] = tmp;

}arrayutils.printarray(a);

}}

希爾排序
public

class

shellsorter

a[j] = tmp;}}

// printarray(a);

}}

簡單選擇排序
public

class

******selectsorter

}if (i != min)

// arrayutils.printarray(a);}}

}

堆排序
public

class

heapsorter

buildmaxheap(array);

for (int i = array.length - 1; i >= 1; i--)

}private

static

void

buildmaxheap(int array)

int half = array.length / 2;

for (int i = half; i >= 0; i--)

}private

static

void

maxheap(int array, int heapsize, int index)

if (right < heapsize && array[right] > array[largest])

if (index != largest)

}/**

* 堆排序方法 o(nlogn) o(nlogn) o(nlogn) o(1)不穩定 不適合序列個數較少的情況

** 對空間要求很少

**@param a

*@param

*/public

static

super anytype>> void

sort(anytype a)

for (int i = a.length - 1; i > 0; i--)

}private

static

super anytype>> void

swapreferences(anytype a, int i, int i1)

private

static

super anytype>> void

percdown(anytype a, int i, int n)

if (tmp.compareto(a[child]) < 0) else

}a[i] = tmp;

}private

static

intleftchild(int i)

}

氣泡排序
public

class

bubblesorter

}// system.out.println("--------------------------");

}// for (int i = 0; i < a.length; i++)

// }

// }

// system.out.println(count);

}}

快速排序
public

class

bubblesorter

}// system.out.println("--------------------------");

}// for (int i = 0; i < a.length; i++)

// }

// }

// system.out.println(count);

}}

歸併排序
public

class

mergesorter

private

static

super anytype>> void

mergesort(anytype a, anytype tmparray, int left, int right)

}private

static

super anytype>> void

merge(anytype a, anytype tmparray, int leftpos, int rightpos, int rightend) else

}while (leftpos <= leftend)

while (rightpos <= rightend)

for (int i = 0; i < numelements; i++, rightend--)

}}

public

class arrayutils

public

static

> void

swapreferences(anytype a, int i, int i1)

public

static

> void

printarray(anytype a)

system.out.println();

}public

static

void

printarray(int array)

}system.out.println("}");

}}

排序演算法java實現

以下文章 亦風亦塵的空間http blog.csdn.net lschou520 archive 2008 10 29 3176422.aspx 插入排序 package org.rut.util.algorithm.support import org.rut.util.algorithm.sor...

java實現排序演算法

四種排序方式 1.氣泡排序 2.插入排序 3.快速排序 4.歸併排序 author zhaijian public class sorts bubblesort a insertsort a quicksort a mergesort a print a 氣泡排序 兩個迴圈,第乙個迴圈是指要排序的總...

排序演算法 Java 實現

1.氣泡排序高階之路 最簡單的交換排序 每個數與之後的所有數比較 param arr public void sort int arr 正宗的氣泡排序 每次從最後開始找出最小的數放在最前面,最小的數像氣泡一樣慢慢浮出水面 param arr public void bubblesort int ar...