各類排序演算法彙總(java原始碼)

2021-08-15 17:06:54 字數 2236 閱讀 7812

**主要內容為(快排、插入排序、選擇排序、冒泡、希爾排序、堆排序、歸併排序),最下方有swap函式和測試**(自行根據函式名替換排序演算法即可)。**

**快排**————————————————————————————

public

static

void

quicksort(int arr,int low,int high)

while(leftif(left1);

quicksort(arr,right+1,high);

}————————————————————————————————

**插入排序**——————————————————————————

public

static

void

insertsort(int arr)

arr[j+1]=tmp;}}

————————————————————————————————————————

**選擇排序**——————————————————————————————————

selectsort

public

static

void

selectionsort(int arr)}}

——————————————————————————————————————————

**冒泡**————————————————————————————————————————

public

static

void

bubblesort(int arr)

}if(flag)

break;}}

——————————————————————————————————————————

**希爾排序**——————————————————————————————————

//shellsort

public

static

void

shellsort(int arr)

arr[j]=tmp;}}

}————————————————————————————————————————

**堆排序**————————————————————————————————————

//heapsort

public

static

void

heapsort(int arr)

for(int j=arr.length-1;j>0;j--)

}public

static

void

adjust(int arr,int i,int length)

if(arr[j]>tmp)

else

}arr[i]=tmp;

}————————————————————————————————————————————

**歸併排序**————————————————————————————————————

//mergesort

public

static

void

mergesort(int arr)

public

static

void

sort(intarr,int low,int high,int tmp)

public

static

void

merge(int arr,int low,int middle,int high,int tmp)

else

}while(a<=middle)

while(b<=high)

while(low<=high)

}————————————————————————————————————————————

交換函式swap

public

static

void

swap(intarr,int a,int b)

測試**

public

static

void

main(string args);

//1 2 2 3 4 4 7 7 8 9 10 19 62

// int arr = ;

mergesort(arr);

for (int i = 0; i < arr.length; i++)

}

十大排序演算法 詳解(Java原始碼)彙總

話不多說 對於排序演算法,可以大致的分為兩類 比較類排序 通過比較決定元素之間的相對次序,由於其時間複雜度不能突破o nlogn 因此也稱為非線性時間比較類排序。非比較類排序,相反道理,不通過比較來決定元素之間的相對次序,它可以突破基於比較排序的時間下界,以線性時間來執行,因此也稱為線性時間非比較類...

常見的排序演算法Java原始碼示例

將常見的排序演算法原始碼放在乙個類中。本文演算法已經經過驗證,可以直接拿來進行使用。原始碼中主要包含插入排序 直接插入排序,二分插入排序,希爾排序 交換排序 氣泡排序,快速排序 由quick,partition兩個方法完成 選擇排序 簡單選擇排序,堆排序 由heap,buildmaxheap,adj...

各類排序演算法

快速排序 void quicksort int data,int low,int high if a k a i 冒泡法 void maopao int a,int num num元素個數 歸併排序 插入排序 include stdafx.h includeusing namespace std d...