冒泡排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序相关的知识,希望对你有一定的参考价值。
void sort(int arr[], int M)
//注:数组传参过程中传过去的不是整个数组而是首元素的地址;
//所以计算元素个数只能在主函数中进行;
//确定冒泡排序的趟数:通过推断可知为元素数-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;
以上是关于冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章