资源简介

分治法的另外一种排序算法,快速排序。有注释,便于阅读,因为交换时使用的引用,暂时归为C++,C语言版稍后奉上。

资源截图

代码片段和文件信息

#include 
#include 

void swap(int &m int &n)  //用引用交换两个数
{
    int temp;
    temp = m;
    m = n;
    n = temp;
}

int Partition(int *array int low int high)
{
    int i= low j = high pivot = array[low];
    while(i < j)  //直到交换结束
    {
        while(i < j && array[j] >= pivot)  //从后往前,直到找到小于基准值
            j--;
        if(i < j)  //判断是否越界
            swap(array[i++] array[j]);  //交换,并且i自加
        while(i < j && array[i] <= pivot)  //从前往后,直到找到大于基准值
            i++;
        if(i < j)  //判断是否越界
            swap(array[i] array[j--]);  //交换,并且j自加
    }
    return j;  //返回基准下标值
}

void QuickSort(int *array int low int high)
{
    int pivotpos; //基准元素所对应的位置
    if(low < high)
    {
        pivotpos = Partition(array low high);  //对数据进行划分,pivotpos是基准元素下标
        QuickSort(array low pivotpos - 1);  //前半部数据
        QuickSort(array pivotpos + 1 high);  //后半部数据
    }
}

int main()
{
    int n i;

    printf(“输入需要排列数据的个数:“);
    scanf(“%d“ &n);  //录入需要排列的个数

    int *array = (int *) malloc (sizeof(int ) * n);
    printf(“请输入数据:\n“);

    for(i = 0; i < n; i++)
    {
        scanf(“%d“ &array[i]);  //录入未排序的数据
    }

    QuickSort(array 0 n - 1);  //进行排序

    printf(“排列后数据:\n“);
    for(i = 0; i < n; i++)  //输出排列结果
    {
        printf(“%d\n“ array[i]);
    }
    return 0;
}
/*
49
38
65
97
76
13
27
*/

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      27896  2013-11-04 14:23  QuickSort1\bin\Debug\QuickSort1.exe

     文件       1583  2013-11-04 14:23  QuickSort1\main.cpp

     文件       4219  2013-11-04 14:23  QuickSort1\obj\Debug\main.o

     文件       1065  2013-11-04 14:09  QuickSort1\QuickSort1.cbp

     文件        137  2013-11-04 14:10  QuickSort1\QuickSort1.depend

     文件        241  2013-11-04 14:23  QuickSort1\QuickSort1.layout

     目录          0  2013-11-04 14:23  QuickSort1\bin\Debug

     目录          0  2013-11-04 14:23  QuickSort1\obj\Debug

     目录          0  2013-11-04 14:23  QuickSort1\bin

     目录          0  2013-11-04 14:23  QuickSort1\obj

     目录          0  2013-11-04 14:23  QuickSort1

----------- ---------  ---------- -----  ----

                35141                    11


评论

共有 条评论