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

2018-10-12  本文已影响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_开发工具

上一篇下一篇

猜你喜欢

热点阅读