C语言实现常用排序算法——冒泡排序

原理:比较临近的两个元素,只要不符合顺序就进行交换;
要点:1.不要越界;2.遍历一遍以后最大的元素就会到最后,所以下次遍历就不用遍历整个数组

void bubble_sort(int a[],int n) {
    int i,j;
    for(i=0; i<n-1; i++) {
        for(j=0; j<n-i-1; j++) {
            if(a[j]>a[j+1]) {
                swap(a+j,a+j+1);
            }
        }
    }
}

void swap(int *pa,int *pb) {
    int temp;
    temp=*pa;
    *pa=*pb;
    *pb=temp;
}

有图有真相,一趟遍历后的结果:

每趟遍历的变化情况:

猜你喜欢

转载自www.cnblogs.com/wangbin2188/p/9593597.html