收錄一些又長又臭,還可能要手寫的模板算法題(說的就是你快排)文章來源地址http://www.zghlxwxcb.cn/news/detail-793478.html
1.快速排序
public class QuickSort {
public static void quickSort(int[] nums, int low, int high) {
if (low < high) {
int pivotIndex = partition(nums, low, high);
quickSort(nums, low, pivotIndex - 1);
quickSort(nums, pivotIndex + 1, high);
}
}
private static int partition(int[] nums, int low, int high) {
int pivot = nums[low];
int i = low;int j = high;
while(i!=j){
while(i<j&&nums[j]>=pivot) j--;
while(i<j&&nums[i]<=pivot) i++;
if(i<j){
int t = nums[i];nums[i] = nums[j];nums[j]=t;
}
}
nums[low] = nums[i];
nums[i] = pivot;
return i;
}
public static void main(String[] args) {
int[] nums = {9, 7, 5, 11, 12, 2, 14, 3, 10, 6};
quickSort(nums, 0, nums.length - 1);
for (int num : nums) {
System.out.print(num + " ");
}
}
}
2.注意的點(diǎn)
2.1每次劃分的時(shí)候,讓pivot位于i左指針最后的位置,并且返回i的位置
2.2 i,j指針移動(dòng)的時(shí)候,請先優(yōu)先移動(dòng)指針j,這樣能保證i指針的位置是可能錯(cuò)的。
文章來源:http://www.zghlxwxcb.cn/news/detail-793478.html
到了這里,關(guān)于收錄一些可能面試用的算法題的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!