#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void bubblc_scrt(int arr[],int sz)//接收数组及数组个数值
{
int i = 0;
for (i = 0; i < sz - 1; i++)//sz-1=10-1=9趟,说明程序需要走9趟的操作
{
int j = 0;
for (j = 0; j <sz-1-i ; j++)//sz-1是固定的值,我们希望条件这里跟着变动,
{//设为i为好,那么第一趟就是10-1-0=9对,要置换的数
//第二趟是,10-1-1=8对数要置换
if (arr[j] > arr[j + 1])//如果是升序,就让arr[j]和arr[j+1]置换
{
int tmp = arr[j];//借助tmp临时变量,使arr[j]和arr[j+1]置换
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}//每一趟中,比较置换的对数
}
}
int main()
{
int arr[] = { 4,8,7,6,2,9,3,5,1,0 };
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
bubblc_scrt(arr,sz);//调用冒泡排序函数,只把数组个数传过去
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
//第一趟 98 97 96 95 94 93 92 91 90 比较置换这9对数,得
//8 7 6 5 4 3 2 1 0 9
//第二趟 87 86 85 84 83 82 81 80 比较置换这8对数,得
//7 6 5 4 3 2 1 0 8 9
降序
降序排列,只需要在置换条件这arr[j]>arr[j+1],改成arr[j]<arr[j+1],其他都不需要改
这次得到降序的排列。