排序算法

2017-06-01  本文已影响0人  走过路过_97c2

冒泡排序算法
//如果order为1,则升序排序,否则降序排序
void BubbleSort(int a[],int size,int order)
{
int i,j;
for(i=0;i<size-1;i++)
{
for(j=0;j<size-i-1;j++)
{
if((order)?(a[j]>a[j+1]):(a[j]<a[j+1]))
{
a[j]=a[j]^a[j+1];
a[j+1]=a[j]^a[j+1];
a[j]=a[j]^a[j+1];
}
}
}
}

选择排序算法
void SelectSort(int a[],int size)
{
int i,j;
for(i=0;i<size-1;i++)
{
for(j=i+1;j<size-1;j++)
{
if((a[i]<a[j])
{
a[j]=a[j]^a[j+1];
a[j+1]=a[j]^a[j+1];
a[j]=a[j]^a[j+1];
}
}
}

//插入排序函数
void InsertSort(int a[], int size)
{
int i,j,k;
for(i=1;i<size;i++)
{
//a[i]插入a[0]...a[i-1]这个有序序列中

      k=a[i];
      j=i-1;

      while(j>=0 && a[j]>k))
      {
           a[j+1]=a[j];
           j--;
      }

      a[j+1]=k;
 }

}

//快速排序函数
void QuickSort(int a[], int start, int end)
{
int i,j,k;

if(start>=end) return;

i=start;
j=end;
k=a[start];

while(i!=j)
{
while(i!=j && (a[j]>=k)) j--;
a[i]=a[j];

while(i!=j && (a[i]<=k):) i++;
a[j]=a[i];
}

a[i]=k;

QuickSort(a,start,i-1);
QuickSort(a,i+1,end);
}

上一篇 下一篇

猜你喜欢

热点阅读