课程名称:
物联网/嵌入式工程师
课程章节(阶段二第七周 冒泡排序 1-1):
冒泡排序课程链接
老师:
大白老师
课程内容:
学习常用排序中的冒泡排序
学习笔记:
以下为排序过程:
-
比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上.
-
对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置
-
重复上述过程,共经过n-1趟冒泡排序后,排序结束
代码实现
#include <stdio.h>
//冒泡排序
void buddle_sort(int *p,int n)
{
int i = 0,j = 0;
for(i = 0;i < n - 1;i++) //轮数
{
for(j = 0;j < n - 1 - i;j++)
{
if(p[j] > p[j + 1])
{
p[j] ^= p[j + 1];
p[j + 1] ^= p[j];
p[j] ^= p[j + 1];
}
}
}
return ;
}
void ouput(int *p,int n)
{
int i = 0;
for(i = 0;i < n;i++)
{
printf("%d ",p[i]);
}
printf("\n");
}
int main()
{
int a[5] = {50,40,30,20,10};
int n = sizeof(a)/sizeof(a[0]);
ouput(a,n);
buddle_sort(a,n);
ouput(a,n);
return 0;
}
打卡:
课程评价
本节主要讲解图的冒泡排序,老师讲的很详细,我也听懂了。