點知識 常用排序類演算法

2021-08-16 23:23:06 字數 1923 閱讀 3370

堆排序

//堆排序

public static void heapsort(int arr)

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

} //整理堆

private static void adjustheap(int arr, int i, int length)

if (arr[k] > temp)

} arr[i] = temp;

} //交換資料

private static void swap(int arr, int a, int b)

快速排序
/**

* 快速排序

* @param array

* @param left

* @param right

*/public static void quicksort(int array, int low, int high)

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

quicksort(array, low, middle - 1);

quicksort(array, middle + 1, high);

}private static int partition(int array, int low, int high)

array[low] = array[high];

while (low < high && array[low] <= temp)

array[high] = array[low];

}array[low] = temp;

return low;

}

氣泡排序
//氣泡排序

public static void bubblesort(int array)

}} }

####插入排序

//插入排序

public static void insertionsort(int array)

array[value + 1] = key;

} }

####選擇排序

//選擇排序

public static void selectsoft(int array)

}if (i != min) }}

####歸併排序

//歸併排序

public static int mergesort(int arrayint, int low, int high)

return arrayint;

}//將兩個排列好的陣列合併成乙個有序陣列

private static void merge(int arrayint, int low, int mid, int high)

for (int i = 0; i < yy.length - 1; i++)

//設定哨兵

xx[a] = integer.max_value;

yy[b] = integer.max_value;

int n = 0;

int m = 0;

for (int i = low; i <= high; i++) else

} }

####希爾排序

//希爾排序

public static void shellsort(int array)

}} }

關於排序演算法的一點知識 演算法思想

1.功能 選擇排序 思想 在要排序的一組數中,選出最小的乙個數與第乙個位置的數交換 然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後乙個數比較為止。效能 不穩定的,演算法複雜度o n 2 思想 在要排序的一組數中,假設前面 n 1 n 2 個數已經是排好順序的,現在要把...

排序演算法之插入排序以及 常用類

規律 1 兩兩比較.在陣列中,使用arr 1 和arr 0 先比較,先讓前面元素,變成有序.將當前元素值小的插入到左邊元素的前面,可理解為站佇列,小個子在前,大個子在後.2 比較次數 陣列長度 1次.public class insertsorttest insertsort arr printar...

知識掃盲 演算法 排序演算法

氣泡排序的核心思想是 從無序佇列的頭部開始,進行兩兩比較,根據大小交換位置,直到最後將最大 小 元素放在佇列的尾部,從而成為有序佇列的一部分 氣泡排序維護兩個for迴圈,第乙個for迴圈控制次數,第二個for迴圈控制兩兩比較。需要注意的是 氣泡排序從哪冒?一般來將都會從右邊冒出,也就是說右邊 佇列的...