1、打开Visual stdio软件,在空项目里新建一个c语言程序空文件:
2、弹出的窗口选择C++文件,将文件扩展名改为“.c”点击添加完成新建c文件,之后就可以编写程序了:
3、这里从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾,经过一轮的比较,就可以找到最大的元素,并将它移动到最后一个位置,然后依次类推直到数组的最后一个数比较完,最后输出结果;
4、最后需要执行程序,按下crtl+F5弹出程序的执行结果,就可以看到排序后的结果了:
#include
voidsort(int*a,intlen)
{inti=0;
intj;
intt;
for(i=0;i { for(j=0;j { if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } } intmain(intargc,char*argv[]) { inta[10]={ -999,2,3,77,12,88,0,-8,99,100 }; inti=0; sort(a,10); for(i=0;i<10;i++) { printf("%d",a[i]); } return0; } 扩展资料 冒泡排序法 #include"stdio.h" voidmain() { inta[10]; inti,j,temp; //输入10个整型数据 printf("Pleaseinputtennumbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); //排序 for(i=0;i<9;i++)//10个数,10-1轮冒泡,每一轮都将当前最大的数推到最后 { for(j=0;j<9-i;j++)//9-i,意思是每当经过一轮冒泡后,就减少一次比较 if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } //打印排序结果 for(i=0;i<10;i++) printf("%d\n",a[i]); return0; }
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
参考代码:
#include
void sort(int a[], int n)//冒泡排序算法
{
int i, j, temp;
for (j = 0; j < n - 1; j++)
for (i = 0; i < n - 1 - j; i++)
{
if(a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
}
int main()
{
int i,a[10] = {1,9,5,4,7,2,0,6,3,8};
printf("排序前:");
for(i=0;i<10;i++)
printf("%d ",a[i]);
sort(a, 10);//调用排序函数
printf("\n排序后:");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
/*
排序前:1 9 5 4 7 2 0 6 3 8
排序后:0 1 2 3 4 5 6 7 8 9
*/
//采用冒泡排序法对一组数据进行由小到大排序
#include
#define M 10
//冒泡排序法
int pop_method(int marr[])
{
int i = 0;
int j = 0;
int tmp = 0;
for (i = 0; i < M ; i++)
{
for(j = 0; j < M - 1 -i; j++)
{
if (marr[j] > marr[j + 1] )
{
tmp = marr[j];
marr[j] = marr[j + 1];
marr[j + 1] = tmp;
}
}
}
return 0;
}
int main(void)
{
int i = 0;
int marr[10] = {34, 10, 3, 0, -12, 43, 21, -4, 5, -16};
pop_method(marr);
//打印排序后的数组
printf("排序后的数组\n");
for (i = 0; i < M; i++)
{
printf("%4d", marr[i]);
}
printf("\n");
return 0;
}