排序算法
2018-02-24 本文已影响9人
RobertCrazying
前言
在大学期间排序算法就是软件工程的入门课程,但是对于学习初期来说难度还是比较大的工作之后也很少接触这些算法容易遗忘,现在借此机会来记录一下方便以后查询。
冒泡排序
private static void bubbleSort() {
int[] arr = {3434, 557, 3424, 46};
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr, j, j + 1);
}
}
}
Arrays.asList(arr);
System.out.println(Arrays.toString(arr));
}
快速排序
private static void quickSort(int[] arr, int start, int end) {
int low = start;
int high = end;
int base = arr[end];
while (start < end) {
while (start < end && arr[start] <= base) {
start++;
}
if (start < end) {
swap(arr, start, end);
}
while (start < end && arr[end] >= base) {
end--;
}
if (start < end) {
swap(arr, start, end);
}
}
if (start > low) {
quickSort(arr, low, start - 1);
}
if (end < high) {
quickSort(arr, end + 1, high);
}
}
快排记忆趣图
image.png