目的:将输入的数组按照从小到大冒泡排序。算法
思路:
① 从第1个数开始, 依次与后一个数比较,将最大的一个数放在最后;
② 继续从第1个数开始,依次与后一个比较,将最大的一个数倒数第二个;
③ 依次类推;数组
int bubble(int a[], int n) { int temp; int i,j; for(i = 0; i< n-1;i++) { for(j = 0;j < n-1-i;j++) { if(a[j] > a[j+1]) { temp = a[j+1]; a[j+1] = a[j]; a[j] = temp; } } } return 0; }3. 算法测试
/** * @brief 测试冒泡程序 * @author mculover666 * @date 2020/04/09 */ #include<stdio.h> int bubble(int a[], int n); int main() { int i; int nums[10]; for(i = 0;i < 10;i++) { nums[i] = 9-i; printf("%2d ", nums[i]); } printf("\n"); //排序功能 bubble(nums, 10); //打印排序后的数 for(i = 0;i < 10;i++) { printf("%2d ", nums[i]); } printf("\n"); return 0; } int bubble(int a[], int n) { int temp; int i,j; for(i = 0; i< n-1;i++) { for(j = 0;j < n-1-i;j++) { if(a[j] > a[j+1]) { temp = a[j+1]; a[j+1] = a[j]; a[j] = temp; } } } return 0; }
编译:bash
gcc test.c -o test.o
执行结果:ide