zoukankan      html  css  js  c++  java
  • 快速排序程序

    快速排序程序

    #include <stdio.h>
    
    int FindPos(int * a,int low, int high);
    void QuickSort(int * a, int low, int high);
    
    int main()
    {
        int a[6] = {2, 1, 0, 5, 4, -96}; //此处可以多试几组数据
        int i;
        QuickSort(a, 0, 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的值大于val时high往右移
                high--;
            a[low] = a[high];
    
            while(low<high&&a[low]<=val)
                low++;
            a[high] = a[low];
        } //终止while循环后low和high一定是相等的
        a[low] = val;//此时a[low] = a[high]
    
        return  low; //low可以改为high,但不可以改为val ,但不能改为a[low],也不能改为a[high];
    }

     排序和查找的关系

      查找是排序的前提

      排序是重点

  • 相关阅读:
    【JavaScript】underscore
    【JavaScript】jQuery
    【JavaScript】浏览器
    【JavaScript】对象
    【JavaScript】函数
    【JavaScript】快速入门
    【python】异步IO
    【python】web开发
    【python】TCP/IP编程
    【python】常用第三方模块
  • 原文地址:https://www.cnblogs.com/spore/p/11094083.html
Copyright © 2011-2022 走看看