您的位置:首页 > 编程语言 > C语言/C++

C语言分别实现冒泡排序、快速排序、选择排序

2017-09-27 19:36 525 查看
冒泡排序:

#include <stdio.h>

#define N 5

int main()


{

    int a
= {2,3,1,5,4};

    int i,j;

    int tmp;

    for(i = 0;i<N;i++)

    {
for(j = 0;j<N-i-1;j++)

        {
  if(a[j]>a[j+1])
  {
tmp = a[j+1];
a[j+1] = a[j];
a[j] = tmp;
    }
}

    }

    for(i = 0;i<N;i++)

  {
printf("%d ",a[i]);

    }

    printf("\n");

    return 0;

}


快速排序:(快速排序是对冒泡排序的一种改进优化)

#include <stdio.h>

#define N 5

void quicksort(int a[],int low,int high)

{
int tmp;
if(low<high)
{
int i = low+1;
int j = high;
while(i<j)
{
if(a[i]>a[low])
{

                                tmp = a[i];
a[i] = a[j];
a[j] = tmp;
j--;
}
else
{
i++;
}
}
if(a[i]>=a[low])
{
i--;
}
tmp = a[i];
a[i] = a[low];
a[low] = tmp;
quicksort(a,low,i);
quicksort(a,j,high);
}

        return ;

}


int main()

{
int i;

    int a
= {2,3,1,5,4};
quicksort(a,0,N-1);
for(i = 0;i<N;i++)
{
printf("%d ",a[i]);
}
printf("\n");

    return 0;

}


选择排序:

#include <stdio.h>

#define N 5

void choosesort(int a[])

{
int i,j,k;
int min;
int tmp;
for(i = 0;i<N-1;i++)
{
j = i;
min = a[j];
for(k = i;k<N;k++)
{
if(a[k]<min)
{
j = k;
min = a[j];
}
}
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}

}


int main()

{
int i;

    int a
= {
9f24
2,3,1,5,4};
choosesort(a);
for(i = 0;i<N;i++)
{
printf("%d ",a[i]);
}
printf("\n");

    return 0;

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