歸併排序與快速排序

2021-09-26 07:16:44 字數 552 閱讀 5060

void merge_sort(int arr,int l,int r)

private static void quicksort(int arr, int low, int high)

private static int getindex(int arr, int low, int high)

// 如果隊尾元素小於tmp了,需要將其賦值給low

arr[low] = arr[high];

// 當隊首元素小於等於tmp時,向前挪動low指標

while (low < high && arr[low] <= tmp)

// 當隊首元素大於tmp時,需要將其賦值給high

arr[high] = arr[low];

}// 跳出迴圈時low和high相等,此時的low或high就是tmp的正確索引位置

// 由原理部分可以很清楚的知道low位置的值並不是tmp,所以需要將tmp賦值給arr[low]

arr[low] = tmp;

return low; // 返回tmp的正確位置

}

歸併排序與快速排序

1.演算法簡介 歸併排序和快速排序都是採用遞迴的結構實現的,不同的是歸併排序在遞迴過程中有合併子串行的過程,而快速排序中沒有,但是快速排序中有較為複雜的劃分過程。二者的平均時間複雜度均為o nlgn 其中快速排序的係數較小 歸併排序最壞情況複雜度為o nlgn 快排在最壞情況下時間複雜度為o n 2...

快速排序與歸併排序

簡單總結一下快速排序和歸併排序的用法,這兩種方法十分省時,在題目中常用。快速排序 基本思想通過一趟排序將代拍記錄分成兩部分,一部分記錄關鍵字比另一部分小,再對這兩部分記錄繼續排序,達到整個序列有序。具體做法是附設兩個指標i和j,初值分別為l,r,任選乙個記錄做樞紐取mid,首先從j位置向前搜找到第乙...

歸併排序與快速排序

1.分治思想顧名思義,就是分而治之的意思,將大問題換分為無數個小問題,小的問題解決了,大的問題自然也就解決了。分之演算法一般都是用遞迴來實現的。分治是一種解決問題的處理思想,遞迴是是一種程式設計技巧。2.歸併排序歸併排序的核心思想 就是講乙個陣列分為前後兩部分分別進行排序,然後將有序的兩個陣列再合併...