zoukankan      html  css  js  c++  java
  • 剑指offer 高速排序

    高速排序一般的写法。教科书上非常具体,这里介绍作者的写法。

    程序例如以下:

    #include<iostream>
    #include<stack>
    using namespace std;
    void swap(int *value1, int *value2)
    {
        int temp = *value1;
        *value1 = *value2;
        *value2 = temp;
    }
    
    int partition(int data[],int length,int start,int end)
    {
        if (NULL == data || length <= 0 || start < 0 || end >= length)
            throw exception("Invalid Data!");
        int small = start - 1;
        for (int index = start; index < end; index++)
        {
            if (data[index] <= data[end])
            {
                small++;
                if (small != index)
                    swap(&data[index],&data[small]);
            }
        }
        small++;
        swap(&data[small],&data[end]);
        return small;
    }
    
    void QuickSort(int data[], int length, int start, int end)
    {
        if (start == end)
            return;
        int index = partition(data,length,start,end);
        if (start < index)
            QuickSort(data, length, start, index-1);
        if (index < end)
            QuickSort(data, length, index+1, end);
    }
    
    int main()
    {
        int data[] = {5,7,2,4,9,3,8,4,1};
        QuickSort(data,9,0,8);
        for (int i = 0; i < 9; i++)
        {
            cout << i << " ";
        }
        return 0;
    }
    
    
    
  • 相关阅读:
    Flutter -- iOS导航栏TabBar
    微信小程序布局
    Tomcat for Mac 搭建本地后台服务器 -- 探索Apache Tomcat
    masnory 动态高度
    iPhone 尺度 x xs sr xsmax
    Deepin 安装 tomcat
    Deepin 设置静态 ip
    md 文件 转 pdf
    mac 上关于截图的偏好设置
    MySQL笔记---DDL
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7356812.html
Copyright © 2011-2022 走看看