距离上次写博客已经过去20天了,卤煮没有偷懒,而是毕业找到了新的工作。
于是从帝都来到了夏天不冷、冬天也不冷的厦门,2000多公里的路程,不远千里,公司的环境超级棒!哈哈!开心!
面试的时候也被问到了算法内容,幸亏有所准备!因此准备写下了,记下来。俗话说:好记性不如烂笔头!有什么不对的地方望大神们指正!
冒泡排序
冒泡排序是交换排序的一种,另一种就是快速排序,后面的文章会介绍。我们先说说冒泡,见名思意就知道这种排序算法如同一个个的水泡慢慢的浮上来,这里的水泡是指排序中的元素。它是一种稳定的排序算法,当存在相等的元素时,不会改变相等元素原始存在的顺序。
举例:int[] arr = {5,1,4,8,0,8,7,2,3,10}
第一趟结果:1,4,5,0,8,7,2,3,8,10
第二趟结果:1,4,0,5,7,2,3,8,8,10
第三趟结果:1,0,4,5,2,3,7,8,8,10
第四趟结果:0,1,4,2,3,5,7,8,8,10
第五趟结果:0,1,2,3,4,5,7,8,8,10
第六趟结果:0,1,2,3,4,5,7,8,8,10
由第五趟和第六趟的排序结果相同可知:冒泡排序的排序的次数跟被排序数组的初始状态有关系!!(划重点)
/**
* 冒泡排序
* @param a 数组名字
* @param length 数组长度
*/
public static void bubbleSort(int a[],int length){
int temp,i,j;
for(i=0;i<length-1;i++){
for (j=0;j<length-i-1;j++){
if(a[j]>a[j+1]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}