首先给大家介绍一下什么是冒泡排序法:
先假设我们这里要排的是升序,就是从小到大排序
这个算法的基本思想是:两两相邻的元素进行比较,如果前面的元素比后面的打,就将两个元素的位置交换,重复这一过程,知道所有的元素都排序号位置。
这个算法的实现有两个步骤:
第一步:一趟冒泡排序的实现,每一次都会把较大的值放到数组的最后面
第二步:有n个元素,就要实现n-1趟的排序。
现在假设有一个数组arr[10]={9,8,7,6,5,4,3,2,1}; 我们要对他进行排序
排序的过程就是这样的
代码如下:
#includeint main() { int i = 0; int j = 0; int k = 0; int arr[10] = { 0 }; for (i = 0; i < 10; i++) { scanf("%d", &arr[i]); } for (i = 0; i < 9; i++) //有n个元素,就要实现n-1趟排序 { for (j = 0; j < 9 - i; j++) //一趟冒泡排序法的实现 //没比较一趟,数组最后面的值就定好了,就少比较一次 { //每一趟都把较大的值放到下面 if (arr[j] > arr[j + 1])//两个相邻元素进行比较 { k = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = k; } } } for (i = 0; i < 10; i++) { printf("%d", arr[i]); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)