java算法--冒泡排序操作
程序员文章站
2022-03-07 12:12:36
java算法(排序)–冒泡排序一、冒泡排序简明介绍(从小到大)冒泡排序算法思想冒泡排序就是将一组无序的 int 类型数组进行排序,此次以从小到大排序为例。核心:int[] array = {};核心一两个相邻元素 (array[0]=a1,array[1]=a2) 比较大小,如果 array[0] > array[1],两数组元素就进行交换。完成后下标加一,继续用下两个相邻元素 (array[1]=a1,array[2]=a3) 比较大小。核心二两个相邻元素 (array[0]...
冒泡排序(java实现),实现最优
一、冒泡排序简明介绍(从小到大)
- 冒泡排序算法思想
冒泡排序的平均时间是O(n2),冒泡排序是稳定的排序算法。
**冒泡排序就是将一组无序的 int 类型数组进行排序,此次以从小到大排序为例。**
核心:
int[] array = {};
核心一
两个相邻元素 (array[0]=a1,array[1]=a2) 比较大小,如果 array[0] > array[1],两数组元素就进行交换。完成后下标加一,继续用下两个相邻元素 (array[1]=a1,array[2]=a3) 比较大小。
核心二
两个相邻元素 (array[0]=a1,array[1]=a2) 比较大小,如果 array[0] <= array[1],两数组元素就不进行交换。下标加一后继续用下两个相邻元素 (array[1]=a2,array[2]=a3) 比较大小。
核心三
当第一趟比较完成后,最大的数就被放在了数组的最后 array[n-1] 中,所以下一趟排序就不用比较 array[n-1] ,直接将数组最大下标置为n-2,继续进行比较。
-
算法过程
第一趟:数组所有元素比较,最大的放在array[n-1]中
第二趟:数组下标为0—n-2的元素进行比较,最大的放在array[n-2]中
第三趟
。。。
第n-2趟:数组下标为0—1两个元素比较,最大的放在array[1]中,整个计算结束。 -
动态图
二、代码实现
冒泡排序 方法实现
public static void BubbleSort(int[] array){
int temp=0;
boolean flag=false; //判断是否按顺序排列
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array.length-1-i; j++) {
if (array[j] > array[j+1]){
flag=true;
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
if (!flag){
break;
}else {
flag=false;
}
}
}
测试
public static void main(String[] args) {
int[] array={20,18,-11,33,1,0,5,8,15,-12};
System.out.println("排序前");
System.out.println(Arrays.toString(arr));
BubbleSort(array);
System.out.println("排序后");
System.out.println(Arrays.toString(array));
}
测试结果
本文地址:https://blog.csdn.net/qq_46343559/article/details/110870810