zoukankan      html  css  js  c++  java
  • 排序-快速排序算法

    快速排序算法是冒泡排序的一种改进,先找到一个元素,设置2各游标,i从前到后遍历,j从后向前遍历,如果第j个小于此元素,则调换,然后i++,如果遇到第i个大于此元素,则调换。其实这就是一个挖坑-填坑的过程。具体的代码如下:

    int base_quicksort(int A[], int first, int last){
        int temp = A[0];
        int i = 0;
        int j = sizeof(A[])/4 - 1;
    while(i != j){ while(A[j] > temp) j--; A[i] = A[j]; while(A[i+1] < temp) i++; A[j] = A[i+1]; A[j] = temp; return j; } } void quicksort(int A[], int first, int last){ if(first < last){ int i = base_quicksort(A, first, last); quicksort(A, first, i-1); quicksort(A, i+1, last); } }

     快速排序算法的时间复杂度为:平均情况下是O(nlog2n),最坏情况:O(n2)

    空间复杂度为O(log2n)

    不稳定,较复杂。

  • 相关阅读:
    初学HTML_3
    初学HTML_2
    初学HTML_1
    VScode中的Java配置
    JAVA中访问控制和继承的规则
    Java中的变量
    minishift 部署postgresql
    sydnsis 把数据库做成api
    sydnsis接口 数据库到mq
    sydnsis 推送和消费amq消息
  • 原文地址:https://www.cnblogs.com/ee2213/p/3998601.html
Copyright © 2011-2022 走看看