1、什么是冒泡排序算法
冒泡排序算法是一种比较简单的排序算法,上学时候的老是都应该讲过该经典算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
2、算法的输入与输出
算法输入:大小无序的一维数组
算法输出:从小到大排序的一维素组
3、算法思想
持续的跟相邻的元素比较大小,如果符合条件,则交换位置
4、实现过程
Java实现:
private static int[] algorithmBody(int[] data){
// 获取数组长度
int dataLength = data.length;
for (int i = 1; i < dataLength; i++) {
for (int j = 0; j < dataLength; j++) {
if(data[j] > data[i]){
int temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
}
return data;
}
调用验证:
public static void main(String[] args) {
System.out.println("冒泡排序算法");
int testData[] = {1,5,7,8,4,2,3,6,9};
for (int i = 0; i < testData.length; i++) {
System.out.print(testData[i]);
}
System.out.println("");
int[] result = BubbleSort.algorithmBody(testData);
for (int i = 0; i < result.length; i++) {
System.out.print(result[i]);
}
}
PHP实现
function BubbleSort(array $container)
{
$count = count($container);
for ($j = 1; $j < $count; $j++) {
for ($i = 0; $i < $count - $j; $i++) {
if ($container[$i] > $container[$i + 1]) {
$temp = $container[$i];
$container[$i] = $container[$i + 1];
$container[$i + 1] = $temp;
}
}
}
return $container;
}
调用验证:
var_dump(BubbleSort([4, 21, 41, 2, 53, 1, 213, 31, 21, 423]));
Javascript实现
//从小到大
function BubbleSort(arr){
var i,j,temp;
for(i=0;i<arr.length-1;i++){
for(j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
}
}
return arr;
}
5、结论
该算法过于简单,亲手做一遍,自然就会有自己的结论与感想。