
先说说冒泡排序(bullbe_Sort)的思想。
所谓冒泡排序就将数组中的第一个数arr[0]与后一个数arr[0+1]进行比较,若前数大于后数,则交换。不断与后数比较称为冒泡次数,然后整个冒泡次数称为第一层冒泡,由此可见若有n个数,则需要进行n-1层冒泡。下面是具体代码
#include
void bubble_Sort(int arr[], int sz)
{
int i = 0;//i的作用是决定冒泡层数,这里数组有10个数,所以i循环(10-1)次
for (i = 0; i < 9; i++)
{
int j = 0;//决定冒泡次数
for (j = 0; j < sz - 1; j++)
//sz为数组内元素个数,因为下标从0开始,所以sz-1才表示最后一个元素
{
if (arr[j] > arr[j + 1])
{
int tmp = arr[j];
//tmp为临时变量,用来暂存元素
arr[j] = arr[j + 1];
arr[j + 1] = tmp;//若前元素比后元素大,则交换
}
}
}
}
int main()
{
int arr[] = { 6,8,9,7,5,1,2,3,0,4};
int sz = 0;
sz = sizeof(arr) / sizeof(arr[0]);
bubble_Sort(arr,sz);
int k = 0;//定义k,用来逐个输出arr内元素
for (k = 0; k < 10; k++)
{
printf("%d ", arr[k]);
//此时的arr数组已排序完毕,升序,挨个打印就行
}
return 0;
}
以上就是冒泡排序的具体实现方法,是我在看了比特鹏哥的课程后写出的,感谢鹏哥的讲解,很清晰明了!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)