package TestCode;
import java.util.Arrays;
public class Test10_13_O_quickly {
public static void swap(int[] arr,int index1,int index2){
int temp=arr[index1];
arr[index1]=arr[index2];
arr[index2]=temp;
}
/**
* 冒泡排序 ToDo:如果数据偏向有序,怎么优化? 设置标记元素
* @param arr
*/
public static void bubbleSort(int[] arr){
if(arr==null){
return;
}
for(int i=0;i<arr.length;i++){ //i控制趟数
boolean flag=false;//用来标记,标记当前趟是否进行交换,如果进行过,需要将flag改为true
for(int j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){ //前者大于后者,两两交换 出现问题:if条件为j<arr.length-i,此时arr[j+1]为越界,所以修改条件为j<arr.length-i-1
swap(arr,j,j+1);
flag=true;
}
}
if(flag==false){
break; //跳出本层循环
}
}
}
public static void main(String[] args){
//1.无序数组
// int[] arr={1,4,2,4,6,6,4,0};
//2.若为有序数组如何优化代码
int[] arr={1,2,3,4,5,6};
bubbleSort(arr);//排序是对原始数据进行操作,不会涉及到新开辟内存的问题
System.out.println(Arrays.toString(arr));
}
}
冒泡排序法
最新推荐文章于 2024-08-15 06:00:00 发布
冒泡排序是一种简单的排序算法,通过不断交换相邻的错误顺序元素来逐步理顺数组。本文将详细介绍冒泡排序的工作原理,并提供Python代码示例进行演示。
摘要由CSDN通过智能技术生成