数据结构-快速排序 java实现

喜欢ヅ旅行 2022-08-14 00:48 231阅读 0赞

快速排序又可以分为冒泡排序、快速排序

1、冒泡排序:时间复杂度O(n*n)。 算法思想:每一次排序都会将最大或者最小的数沉到最下面。

  1. <span style="font-size:14px;">public static void bubbleSort(int [] num){
  2. int length=num.length;
  3. for(int i=0;i<length;i++){
  4. for(int j=0;j<length-i-1;j++){
  5. int temp;
  6. if(num[j]>num[j+1])
  7. {
  8. temp=num[j];
  9. num[j]=num[j+1];
  10. num[j+1]=temp;
  11. }
  12. }
  13. }
  14. }</span>

2、快速排序:使用递归的思想,先任意在数组中选择一个基准将数组分成两个部分,然后再分别对这两个部分进行快速排序,时间复杂度为:O(nlog2n)

  1. <span style="font-size:14px;">/**
  2. * description : 快速排序
  3. */
  4. public static void quicksort(int n[], int left, int right) {
  5. int dp;
  6. if (left < right) {
  7. dp = partition(n, left, right);
  8. quicksort(n, left, dp - 1);
  9. quicksort(n, dp + 1, right);
  10. }
  11. }
  12. public static int partition(int n[], int left, int right) {
  13. int pivot = n[left];
  14. while (left < right) {
  15. while (left < right && n[right] >= pivot)
  16. right--;
  17. if (left < right)
  18. n[left++] = n[right];
  19. while (left < right && n[left] <= pivot)
  20. left++;
  21. if (left < right)
  22. n[right--] = n[left];
  23. }
  24. n[left] = pivot;
  25. return left;
  26. }</span>

发表评论

表情:
评论列表 (有 0 条评论,231人围观)

还没有评论,来说两句吧...

相关阅读

    相关 数据结构-排序-快速排序

    快速排序 快速排序法又称分割交换排序法,是目前公认的速度最快的排序法,该方法是现在数据中找到一个虚拟的中间值,然后将大于这个中间值的放到右边,小于中间值的放到左边,然后将