• 冒泡排序的优化


    冒泡排序使用两个for循环实现,如果在循环的中途已经将序列排列好,则应跳出循环,避免无意义的操作。

    程序如下。

    /**
    **  @author:hushunfeng
    **    
    */
    #include<stdio.h>
    
    #define bool int 
    
    void swap(int *a,int *b) {
        int temp;
        temp = *a;
        *a = *b;
        *b = temp;
    }
    
    void bubbleSort(int *array,int arraySize) {
    
        bool flag = 1;
        int i =0;
        int j =0;
        
        while(flag) {
            flag = 0;
            for(j=0;j<arraySize-1-i;j++) {
                if(array[j]>array[j+1]) {
                    swap(&array[j],&array[j+1]);
                    flag = 1;
                }
            }
            i++;
        }
    }
    
    void main() {
        int array[8] = {8,4,3,6,5,2,1,7};
        int i;
        bubbleSort(array,8);
    
        for(i = 0; i < 8 ; i++) {
            printf("%d
    ",array[i]);
        }
    
    }
  • 相关阅读:
    从进入这里,没有写过什么文章,现在开始吧
    24)
    23)
    22)
    21)
    20)
    19)
    18)
    17)
    16)
  • 原文地址:https://www.cnblogs.com/hushunfeng/p/3889953.html
Copyright © 2020-2023  润新知