1.快速排序
int patition(int elem[],int low,int high)
{
while(low<hign)
{
while( low<high && elem[low]<elem[high])
high--;
swap(elem[low],elem[high]);
while( low<high && elem[high]>elem[low])
low++;
swap(elem[low],elem[high]);
}
return low;
}
void qSort(int elem[],int n)
{
int i=0,j=n-1;
if(i<j)
{
int p=patition(elem,i,j);
qSort(elem,i,q-1);
qSort(elem,q+1,j);
}
2.直接插入排序
void straightSort(int elem[],int n)
{
if(n<=0) return;
for(int i=1;i<n;i++)
{
int cur=elem[i];
for(int j=i-1;j>=0&&elem[j]>elem[i];j--)
{
swap(elem[j],elem[j+1]);
}
elem[j+1]=cur;
}
}
3.归并排序
void MergeSort(int elem[],int start, int mid, int end)
{
int data[]=new int[end-start+1];
int i=start, j=mid, k=0;
while(i<mid && j<=end)
{
if(elem[i]<elem[j])
data[k++]=elem[i];
else
data[k++]=elem[j];
}
while(i<mid)
data[k++]=elem[i];
while(j<=end)
data[k++]=elem[j];
}