void sort(int arr[], int M)标签:DUI,arr,int,元素,冒泡排序,数组 From: https://blog.51cto.com/u_15812356/5738754
//注:数组传参过程中传过去的不是整个数组而是首元素的地址;
//所以计算元素个数只能在主函数中进行;
{
//确定冒泡排序的趟数:通过推断可知为元素数-1+趟数;
int i;
for (i = 0; i < M-1;i++)
{
int j;
int DUI = 1;//假设这一趟要排序的数据已经有序;
for (j = 0; j < M - i - 1; j++)
//每一趟冒泡排序的内容
{
if (arr[j] > arr[j + 1])
//冒泡排序原则:相邻两个元素比较;
//如果需要降序可以从此处修改;
{//以下三个函数为替换函数
int iTemp=arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = iTemp;
DUI = 0;//本趟排序的数据不完全有序;
}
}
if (DUI == 1)//若已经有序则跳出循环
{
break;
}
}
}
int main()
{
int arr[]={3,4,1,2,6,5,8,7,9,10};
//整型数组:对arr进行冒泡排序,且为升序;
int sz = sizeof(arr) / sizeof(arr[0]);
//sizeof计算变量、数组、类型的大小;
//计算数组中元素个数;arr代表整个数组;arr代表数组中第一个元素;
sort(arr,sz);//冒泡排序函数;
for (int i = 0; i <sz ; i++)
{
printf(" %d ", arr[i]);
}
return 0;
}