Java的冒泡排序
Java的冒泡排序对于我而言就如同C++的冒牌排序差不多,但初学者通常要花费很多时间来理解这个逻辑,所以在这里我便为大家分享一下我对于冒泡排序的理解
在程序设计中,经常需要讲一组数列进行排序,这样更加方便统计与查询。通常排序的方式有很多如冒泡排序、选择排序、快速排序等。
冒泡排序是最常用的数组排序算法之一,它的排序方式总是将最小的数放在前面,从小到大的方式进行排列,就如同水中冒泡向上升的动作故称之为冒泡排序。
1、基础思想:
冒泡排序的基本思想是对比两个相邻的元素值,如果满足条件则交换元素值,将较小的元素值放在前面,把较大的元素值放在后面(也就是交换两个元素的位置),这样比较的元素就像气泡一样从底部升起来。
2、算法实例
冒泡算法是由双层循环实现的,其中外层循环用于控制排序轮数,一般为要排序的数组长度减一次,因为最后一次循环只剩下一个数组元素,所以不需要比对。
实例如下:
public class maopao {
public static void main(String args[]) {
int[] array= {65,4,24,1,3,15};//创建一个数组,这些数组是乱序的
maopao sorter=new maopao();//定义排序类对象
sorter.sort(array);//调用排序方法将数组排序
}
public void sort(int[] array) {
for(int i=1;i<array.length;i++) {
for(int j=0;j<array.length-i;j++) {
if(array[j]>array[j+1]) {
int temp=array[j];//把第一个元素值保存在临时变量中
array[j]=array[j+1];//把第二个元素保存在第一个元素单元中
array[j+1]=temp;//把临时变量保存到第二个元素中
}
}
}
showArray(array);//输出冒泡排序后的数组元素
}
public void showArray(int[] array) {
for(int i:array) {
System.out.print(" "+i);//从小到大输出每个数组元素
}
System.out.println();
}
}
直接排序
直接排序方法属于选择排序的一种,它的排序速度比冒泡排序要快一点,也是最为常见的初学者应该掌握!
算法实例
每一趟从待排序的数据元素中选出最小的(或者最大的)一个元素,顺序的放 在已排好序的数列的最后,直到全部待排序的数据元素排完。