物联网/嵌入式工程师
冒泡排序课程链接
大白老师
学习常用排序中的冒泡排序
以下为排序过程:
比较第一个数与第二个数,若为逆序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; }
本节主要讲解图的冒泡排序,老师讲的很详细,我也听懂了。