zoukankan      html  css  js  c++  java
  • 【快速排序】算法实现

    快速排序,是分治递归的应用。算法的时间复杂性为:O(nlogn)。算法的递归深度接近于logn。因此,所需要的工作单元为O(logn)。

    //快速排序
    #include<iostream.h>
    int count=0;
    void swap(int &a,int &b)
    {
        
    int temp;
        temp
    =a;
        a
    =b;
        b
    =temp;
    }
    int split(int array[],int low,int high)
    {
        
    int i=low;//保存枢点元素的位置,初始值为low
        int j;
        
    int x=array[low];
     
        
    for(j=low+1;j<=high;j++)
        {
            
    if(array[j]<=x)
            {
                i
    ++;
                
    if(i!=j)
                {
                    swap(array[i],array[j]);
                }
            }
        }
        swap(array[low],array[i]);
        
    return i;
    }
    void print(int array[],int n)
    {  
        
    for(int i=0;i<8;i++)
        {
            cout
    <<array[i]<<" ";
        }
        cout
    <<endl;
    }
    void quick_sort(int array[],int low,int high)
    {
        
    int k;
        
    if(low<high)
        {
            k
    =split(array,low,high);     
            quick_sort(array,low,k
    -1); 
            quick_sort(array,k
    +1,high); 
        }
    }
    void main()
    {
        
    int array[]={5,8,4,9,3,6,7,2};
        quick_sort(array,
    0,7);     
        print(array,
    7);
    }
  • 相关阅读:
    rabbitmq 公平分发和消息接收确认(转载)
    rabbitmq 配置多个消费者(转载)
    Spring整合rabbitmq(转载)
    rabbitmq 一些属性
    rabbitmq 持久化 事务 发送确认模式
    TCP中的长连接和短连接(转载)
    rabbitmq 概念
    ZooKeeper介绍(转载)
    npm install 安装依赖报错解决
    ubuntu下安装node.js教程
  • 原文地址:https://www.cnblogs.com/wintergrass/p/2031023.html
Copyright © 2011-2022 走看看