JAVA实现冒泡排序
package zc;
import java.util.Arrays;
/**
* JAVA实现冒泡排序
* @author D
*
*/
public class bubbleSort {
public static void main(String[] args) {
int arr[]= {2,6,4,8,9,3,6,4,8,0};
sort(arr);
System.out.println(Arrays.toString(arr)); //打印排序后的数组
}
static void sort(int [] arr){
if(arr.length<2){
return;
}
for(int i=0;i<arr.length-1;i++) { //外循环排序次数
for(int j=0;j<arr.length-i-1;j++) { //内循环排序次数
if(arr[j]>arr[j+1]) {
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
}
优化后的冒泡排序
package zc;
import java.util.Arrays;
/**
* JAVA实现优化的冒泡排序
* @author D
*
*/
public class bubbleSort {
public static void main(String[] args) {
int arr[]= {2,6,4,8,9,3,6,4,8,0};
sort(arr);
System.out.println(Arrays.toString(arr)); //打印排序后的数组
}
static void sort(int [] arr){
if(arr.length<2){
return;
}
for(int i=0;i<arr.length-1;i++) { //外循环排序次数
boolean flag=true; //增加标志位
for(int j=0;j<arr.length-i-1;j++) { //内循环排序次数
if(arr[j]>arr[j+1]) {
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
flag=false; //如果发生了交换,flag改变
}
}
if(flag) { //flag为true,代表没有发生交换,表示数组已经排好序,无需继续进行排序,直接break跳出外循环
break;
}
}
}
}