常用算法(c语言版)

主要针对NOJ及C程序考试,总结一些c++中用STL实现的功能

1.快排(递归实现)

void quicksort(int left,int right)
{
    int i,j,t,temp;
    if(left>right) return;
    temp=a[left]; //temp中存的就是基准数
    i=left; j=right;
    while(i!=j)
    { //顺序很重要,要先从右边开始找
        while(a[j]>=temp && i<j) j--; //再找右边的
        while(a[i]<=temp && i<j) i++; //交换两个数在数组中的位置
        if(i<j)
        {
            t=a[i];
            a[i]=a[j];
            a[j]=t;
        }
    } //最终将基准数归位
    a[left]=a[i]; a[i]=temp;
    quicksort(left,i-1);//继续处理左边的,这里是一个递归的过程
    quicksort(i+1,right);//继续处理右边的 ,这里是一个递归的过程
}

 

 

    原文作者:五大常用算法
    原文地址: https://blog.csdn.net/int_lyy/article/details/83752976
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞