算法系列--第一篇--冒泡排序
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;
}