数列排序--------C
数列排序
对于这道题是一道排序题。排序算法包括冒泡排序,选择排序,快速排序,归并排序(选择与归并差不多)
冒泡排序思想:
前一个数和后一个数进行比较,如果大就放到前面,否则不用改变
C语言代码:
#include<stdio.h>
#define N 210
int main()
{
int n,i,j;//n<=200
int output[N]={0};
int temp;
scanf("%d",&n);
//输入数组
for(i=0;i<n;i++)
scanf("%d",&output[i]);
//排序
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(output[i]>output[j])
{
temp=output[j];
output[j]=output[i];
output[i]=temp;
}
}
for(i=0;i<n;i++)
printf("%d ",output[i]);
return 0;
}
选择排序思想:选择一个数组中最小的放在首端,其后的数据与首端的进行比较
C语言代码:
#include<stdio.h>
#define N 210
int main()
{
int n,i,j;//n<=200
int output[N]={0};
int min;
scanf("%d",&n);
//输入数组
for(i=0;i<n;i++)
scanf("%d",&output[i]);
for(i=0;i<n;i++)
{
min=output[i];
for(j=i+1;j<n;j++)
{
if(output[j]<min)
{
min=output[j];
output[j]=output[i];
output[i]=min;
}
}
}
for(i=0;i<n;i++)
printf("%d ",output[i]);
return 0;
}
快速排序算法思想:选择一个基值,分别与基值进行比较,小的放在右边,大的放在左边。再后往前比较,用基准值和最后一个值比较,如果比基准值小的交换位置,如果没有继续比较下一个,直到找到第一个比基准值小的值才交换。