最常用排序算法
一、选择排序
选择排序的基本思想是每步从待排序的记录中选出排序码最小的记录,顺序存放在已排序的记录序列的后面,直到全部排完。选择排序中主要使用直接选择排序。
代码如下:
void Dir_Choose(int A[],int n)
{
int k,t;
for(int i=0;i<n-1;i++)
{
k=i;
for(int j=i+1;j<n;j++)
{
if(A[j]<A[k])
k=j;
}
if(k!=i)
{
t=A[i];
A[i]=A[k];
A[k]=t;
}
}
}
二、交换排序
交换排序的基本思想是两两比较待排序记录的排序码,并交换不满足顺序要求的那些对,直到满足条件为止。交换排序的主要方法有冒泡排序和快速排序。
代码如下:
//优化的冒泡排序
void Swap_Sort(int A[],int n)
{
int count=0,flag,t;
for(int i=0;i<n-1;i++)
{
flag=0;
for(int j=0;j<n-i;j++)
{
if(A[j+1]<A[j])
{
t=A[j];
A[j]=A[j+1];
A[j+1]=t;
flag=1;
count+=3;
}
}
if(flag==0)break;
}
}