- 冒泡排序将数组内的元素进行一定序列的算法,如{1,5,4,6}就变成{1,4,5,6}还可以{6,5,4,1}
- 如何实现,例如
-
7 23 12 4 13 21 2 17 13 9 1. 7与23比较,比较出最值,如果比较最大值,7<23,就将7与23的值交换 23 7 12 4 13 21 2 17 13 9 2. 当上次比较结束,留下的值再与下一项比较,如7<12,就将7与12的值交换 23 12 7 4 13 21 2 17 13 9 ······· 9. 到最后再比最大的排在最前面,发现1次好像不够。
再从的第二项开始以上过程,一直排序。
最小值如图
-
用程序来表示:
#include<stdio.h> int main() { int arr[] = { 7,23,12,4,13,21,2,17,13,9 }; int sz, i, j; i = 0; j = 0; sz = sizeof(arr) / sizeof(arr[0]); for (i = 0; i < sz - 1; i++) { for (j = 0; j <sz - 1; j++) { if (arr[j] < arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } printf("%d\t", arr[j]); } printf("\n"); } return 0; }
结果
实质上是用双循环来排列数组元素。