zoukankan      html  css  js  c++  java
  • C_数据结构_快速排序

    # include <stdio.h>
    
    void QuickSort(int * a, int low, int high);
    int FindPos(int * a, int low, int high);
    
    int main(void)
    {
        int a[6] = {2, 1, 0, 5, 8, 3};
        int i;
    
        QuickSort(a, 0, 5); //第二个参数表示第一个元素的下标,第三个参数表示最后一个元素的下标,表示把a[0]-a[5]进行排序
    
        for (i=0; i<6; ++i)
            printf("%d ", a[i]);
        printf("
    ");
    
        return 0;
    }
    
    void QuickSort(int * a, int low, int high)
    {
        int pos;
    
        if (low < high)
        {
            pos = FindPos(a, low, high);
            QuickSort(a, low, pos-1);
            QuickSort(a, pos+1, high);
        }
    }
    
    int FindPos(int * a, int low, int high)
    {
        int val = a[low];
    
        while (low < high)
        {
            while (low < high && a[high]>=val)
                --high;
            a[low] = a[high];
    
            while (low<high && a[low]<=val)
                ++low;
             a[high] = a[low];
        } //终止while循环后low和high一定是相等的
        a[low] = val;
    
        return low; //high可以改为low,但不能改为val,也不能改为a[low]和a[high]
    } 
  • 相关阅读:
    键盘移动小div(js原生)
    递归好理解,可是不好用啊
    jsonp
    闭包
    json
    来个小例子(ajax)
    ajax小demo
    制作H5响应式页面注意事项、微信二次分享
    Button按钮--inject与provide
    webpack基本打包配置流程
  • 原文地址:https://www.cnblogs.com/LXL616/p/10661639.html
Copyright © 2011-2022 走看看