美文网首页
算法系列--第一篇--冒泡排序

算法系列--第一篇--冒泡排序

作者: 慢牛策略 | 来源:发表于2018-10-12 18:16 被阅读3次

    1 原理:

     通过比较相邻元素,让越小的元素,慢慢排在顶端。
    

    2 描述:

      2.1 比较相邻元素,第一个元素>第二个元素,交换顺序;
      2.2 第二个元素和第三个元素比较,第二个元素>第三个元素,交换顺序。
      2.3 不断重复下去,知道最大的元素排在最后面,且最大元素不再参与排序
      2.4 重复上述步骤,直到所有元素按照顺序排列。
    
    3 Java版本:
    import java.sql.Array;
    import java.util.Arrays;
    
    /**
     * 冒泡排序算法
     * @author lincoln
     *
     */
    public class BubbleSort {
    
        public static void main(String[] args) {
            int[] data = new int[]{3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};
            System.out.println("排序前:"+Arrays.toString(data));
            int tmp = 0;
            for(int i=0;i<data.length-1;i++) {
                for(int j=1; j<data.length -1-i;j++) {
                    if (data[j] > data[j+1]) {
                        tmp=data[j];
                        data[j] = data[j+1];
                        data[j+1] = tmp;
                    }
                }
                System.out.println("排序中:"+Arrays.toString(data));
            }
            System.out.println("排序后:"+Arrays.toString(data));
        }
    }
    
    4 Python版本:
    #1 冒泡排序
    data = [3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]#list
    print("排序前",data)
    
    tmp = 0#临时数据
    for m in range(len(data)-1):
        for n in range(len(data)-1-m):
            if data[n] > data[n+1]:
                tmp = data[n]
                data[n] = data[n+1]
                data[n+1] = tmp
                
    print("排序后",data)      
    
    5 C++版本
    /**
     * Eclipse开发C/C++之使用技巧小结,写给新手
     * https://blog.csdn.net/challenge_c_plusplus/article/details/7364354
     */
    #include <iostream>
    using namespace std;
    
    template<class T>
    int length(T& arr)
    {
        return sizeof(arr) / sizeof(arr[0]);
    }
    
    int main()
    {
        int data[] = {3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};
        cout << "排序前:"<< endl;
        for(int i=0; i< length(data);i++){
                cout  << data[i] << "  ";
    
        }
        cout << endl;
        int tmp = 0;
        for(int m=0;m<length(data)-1;m++){
            for(int n=0;n < length(data)-1-m;n++){
                if(data[n] > data[n+1]){
                    tmp = data[n+1];
                    data[n+1] = data[n];
                    data[n] = tmp;
                }
            }
        }
        cout << "排序后:"<<endl;
        for(int i=0; i< length(data);i++){
            cout  << data[i] << "  ";
        }
        cout << endl;
        return 0;
    }
    

    参考文章:十大经典排序算法(动图演示)

    深受C/C++程序员欢迎的11款IDE_开发工具

    相关文章

      网友评论

          本文标题:算法系列--第一篇--冒泡排序

          本文链接:https://www.haomeiwen.com/subject/dmygaftx.html