=====
第1题:实现冒泡排序
=====
第1题:实现冒泡排序
=====
-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
请根据自己的理解编写冒泡排序算法,数组大小1000以内
输入
-
第一行是n,表示数组的大小
接着n行是数组的n个元素
输出
-
排序之后的结果
一个元素一行 -
#include<stdio.h> const int COUNT= 11; main() { int arr[]={10,8,9,3,2,4,7,6,5,1,0}; int i,j; for(j=0;j<COUNT-1;j++){ for(i=0;i<COUNT-1-j;i++){ if (arr[i]>arr[i+1]){ int tmp=arr[i]; arr[i]=arr[i+1];arr[i+1]=tmp; } } for(i=0;i<COUNT;i++){ printf("%d,",arr[i]); } printf("\n loop(%d):================\n",j); } for(i=0;i<COUNT;i++){ printf("%d,",arr[i]); } printf("over"); }
- 运行效果如下:
-
-
以上代码编写与vs2012里完成。 -
-
-
冒泡排序的原理
-
- 使用函数和指针,改良后的程序如下:
-
-
#include<stdio.h> const int COUNT= 11; /**** *负责冒泡排序 ***/ int* sortFunction(int data[]){ int i,j; for(j=0;j<COUNT-1;j++){ for(i=0;i<COUNT-1-j;i++){ if (data[i]>data[i+1]){ int tmp=data[i]; data[i]=data[i+1];data[i+1]=tmp; } } for(i=0;i<COUNT;i++){ printf("%d,",data[i]); } printf("\n loop(%d):================\n",j); } return data; } main() { int arr[]={10,8,9,3,2,4,7,6,5,1,0}; int *pon=sortFunction(arr); int i; for(i=0;i<COUNT;i++){ printf("%d,",*pon++); } printf("over"); }
-
-
-
-
我觉得看了 北大的计算机概论A 这门课,收获很多,特动手重新复习了一下C语言程序设计,把课里的习题自己动手做了一遍。
Introduction to Computing 计算概论A
-