quicksort.h
来自「快速排序、合并排序、插入排序、堆排序、计数排序等算法的C语言实现」· C头文件 代码 · 共 64 行
H
64 行
#include<stdio.h>
#define TRUE 1
#define FALSE 0
//快速排序头文件
typedef int ElemType;
long Partition(ElemType A[],long p,long r)
{//划分数组
long i,j;
ElemType temp1,temp2;
temp1=A[r];
i=p-1;
for(j=p;j<r;j++)
{
if(A[j]<=temp1)
{
i++;
ElemType t;
t=A[i];
A[i]=A[j];
A[j]=t;
}
}
temp2=A[i+1];
A[i+1]=A[r];
A[r]=temp2;
return i+1;
}
void QuickSort(ElemType A[],long p,long r)
{//快排序
long q;
if(p<r)
{
q=Partition(A,p,r);
QuickSort(A,p,q-1);
QuickSort(A,q+1,r);
}
}
long RandomizedPartition(ElemType A[],long p,long r)
{//数组划分随机版本
long i;
ElemType temp;
time_t t;
srand((unsigned)time(&t));
i=rand()%(r-p+1)+p;
temp=A[r];
A[r]=A[i];
A[i]=temp;
return Partition(A,p,r);
}
void RandomizedQuickSort(ElemType A[],long p,long r)
{//快排序随机版本
long q;
if(p<r)
{
q=RandomizedPartition(A,p,r);
RandomizedQuickSort(A,p,q-1);
RandomizedQuickSort(A,q+1,r);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?