您的位置:首页 > 其它

C 排序算法 (冒泡)(选择)|(插入)|(快速)

2017-01-13 09:49 169 查看

排序算法

冒泡

2 5 8 6 9  1 7 3 4 5
for(int i=0;i<9;i++){
for(int j=0;j<9-i;j++)
{
if(a[j]<a[j+1])
}
}


选择排序

基准(位置)

for(int i=N;i>1;i--)
{
int max_pos=0;
for(int j=0;j<i;j++)
{
if(a[max_pos]<a[j])
{
max_pos=j
}

SWAP(a[max_pos],a[i-1]);
}

}


~ 定义宏 swap 替换 #define SWAP(a,b) {int temp; temp=a;a=b;b=temp;}

插入排序

for(int i=0;i<N;i++)
{
int pos=0;int value=0;
for(int j=0;j<i;j++)
{
if(a[i]<a[j]{
pos=j;
value=a[i];
for(k=i-1;k>=j;k--){
a[k+1]=a[k];
}
a[pos]=vulue;
}
}
}


quicksort

int partition(int *a, int left,int right)
{
int i,j,k;
k=left;
for(i=left;i<right;i++)
{
if(a[i]<a[right]){
SWAP(a[i],a[k]);
k++;
}

}
SWAP(a[i],a[right]);
return k;
}

void quicksort(int *a,int left,int right)
{
int pivot;
pivot=partition(*a,left,right);

if(left<right)
{
quicksort(a,left,pivot-1);
quicksort(a,pivot+1,right);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐