大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
排序有挺多方法的,例如:冒泡排序法、选择排序法
创新互联服务项目包括涵江网站建设、涵江网站制作、涵江网页制作以及涵江网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,涵江网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到涵江省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
以下使用选择排序
#include stdio.h
void fun(int a[], int n)
{
int i,j,k,tmp;
for(i=0;in-1; i++)
{
k=i;
for(j=i+1;jn;++j)
if(a[j]a[k]) k=j;
if(k!=i)
{
tmp=a[k];a[k]=a[i];a[i]=tmp;
}
}
}
int main()
{
int a[10];
int i;
for(i=0; i10; i++) scanf("%d", a[i]);
fun(a,10);
for(i=0; i10; i++) printf("%d\n", a[i]);
printf("第二大的数是:%d",a[1]);
return 0;
}
#include "stdio.h"
#define MAX 10
void sort(int *p,int n)
{int i,j;
int temp; //记录每一轮比较中最大值
int maxindex; //记录每一轮比较中最大值的下标
for (i=0;in;i++)
{
temp=p[i];
maxindex=i;
for (j=i+1;jn;j++)
if (tempp[j]) {temp=p[j];maxindex=j;}
if(maxindex!=i){p[maxindex]=p[i];p[i]=temp;}
}
}
/*
void sort(int *p)
{int i,j,k;
for (i=0;i9;i++)
for (j=i+1;j10;j++)
if (p[i]p[j]) {k=p[i];p[i]=p[j];p[j]=k;}
这个是简单选择排序,但是执行效率没有上面的高。不过对于比较小的基数,还是看不出来效率的优劣,如果在基数上百万时,效率高的执行时间将节省不少。
*/
main()
{
int a[MAX],i;
for (i=0;iMAX;i++)
scanf("%d",a[i]);
sort(a,MAX);
for(i=0;iMAX;i++)
printf("%d ,",a[i]);
}
#include "stdio.h"
void select_sort(int a[],int n)
{
int i,j,k,temp;
for(i=0;in-1;i++)
{
k=i;
for(j=i+1;jn;j++)
{
if(a[j]a[k])//将这里改成a[j]a[k]就是按升序排序
{
k=j;
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
}//定义选择排序函数
int main()
{
int i;
int a[8];
printf("Please input 8 nubmers:\n");
for(i=0;i8;i++)
{
scanf("%d",a[i]);
}//从键盘读入8个整数
printf("The 8 numbers you input is:\n");
for(i=0;i8;i++)
{
printf("%d ",a[i]);
}
printf("\n");
select_sort(a,8);//调用选择排序函数
printf("The sorted numbers is\n");
for(i=0;i8;i++)
{
printf("%d ",a[i]);
}//对排好序的数组进行输出
printf("\n");
getchar();
}
在scanf("%c\n",style);前加 char c; scanf("%c",c);
原因:前面输入数字时有输入回车 scanf把这个回车赋给了style 所以 要把先那个回车吃了
#includestdio.h
void Sort(int *a,int n) {
int *p,*q,*v,t;
for(p = a;p a + n - 1;++p) {
v = p;
for(q = p + 1; q a + n; ++q)
if(*v *q) v = q;
if(*p != *v) {
t = *p;
*p = *v;
*v = t;
}
}
}
void Show(int *a,int n) {
int i;
for(i = 0; i n; ++i)
printf("%d ",*(a + i));
printf("\n");
}
int main() {
int a[] = {23,12,54,89,66,59,57,48,91,20,31};
int n = sizeof(a)/sizeof(a[0]);
printf("排序前:\n");
Show(a,n);
printf("排序后:\n");
Sort(a,n);
Show(a,n);
return 0;
}
#include stdio.h
void sort1(int a[],int n)
{int i,j,t;
for(i=0;in-1;i++)
for(j=0;jn-1-i;j++)
if(a[j]a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
void sort2(int a[],int n)
{int i,j,t;
for(i=0;in-1;i++)
for(j=0;jn-1-i;j++)
if(a[j]a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
int main()
{int i,a[10];
for(i=0;i10;i++)
scanf("%d",a[i]);
printf("\n");
sort1(a,10);
for(i=0;i10;i++)
printf("%d ",a[i]);
printf("\n\n");
sort2(a,10);
for(i=0;i10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}