收录一些又长又臭,还可能要手写的模板算法题(说的就是你快排)文章来源地址https://www.toymoban.com/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.注意的点
2.1每次划分的时候,让pivot位于i左指针最后的位置,并且返回i的位置
2.2 i,j指针移动的时候,请先优先移动指针j,这样能保证i指针的位置是可能错的。
文章来源:https://www.toymoban.com/news/detail-793478.html
到了这里,关于收录一些可能面试用的算法题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!