排序算法
1. 冒泡排序(bubblesort)每轮排序最小的不断往前移
Void bubblesort(int *PData,int count)
{
int i ,j,tmp
For(i=0;i<count-1;i++)
For(j=count-1;j<=i;j--)
{
if(PData[j]<PData[j-1])
{
Tmp=PData[j];
PData[j]=PData[j-1];
PData[j-1]=tmp;
}
}
}
2. 交换法(Exchangesort)每轮把第一个位置确定最小,小于第一位置就交换
Void Exchangesort(int *PData,int count)
{
Int I,j,tmp
For(i=0;i<count-1;i++)
{
For(j=i+1;j<count;j++)
{
If(PData[j]<Data[i])
{
Tmp=PData[i];
PData[i]=PData[j];
PData[j]=tmp;
}
}
}
}
3. 选择法(selectsort)
Void SelectSort(int * PData,int count)
{
Int tmp ,ipos,i,j;
For(i=0;i<count-1;i++)
{
Tmp=PData[i];
Pos=I;
For(j=i+1;j<count;j++)
{
If(PData[j]<tmp)
{
Tmp=PData[j];
Pos=j;
}
PData[pos]=PData[i];
PData[i]=tmp;
}
}
}
4. 快速排序(quictsort)
Void quictsort(int * PData,int left,int right
{
Int i ,last;
Void swap(int v[],int I,int j);
If(left>=right)
Return ;
Swap(v,left,(left+right)/2);
Last=left;
For(i=left+1;i<=right;i++)
If(v[i]<v[left])
Swap(v,++last,i);
Swap(v,left,last);
Quictsort(v,left,last-1);
Quictsort(v,last+1,right);
}
Void swap(int v[],int I,int j)
{
Int tmp;
Tmp=v[i];
V[i]=v[j];
V[j]=tmp;
}