目录
冒泡排序的原理
排序:将一组数据按照固定的规则进行排序
冒泡排序:是一种排序的方法,要对进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,依次对所有的数据进行操作,直到所有的数据按要求完成排序
如果有n个数据进行排序,总共需要比较n-1次
每一次比较完毕,下一次的比较就会少一个数据参与
冒泡排序代码实现
public class ArrayDemo {
public static void main(String[] args){
//定义一个数组
int[] arr ={34,43,25,55,12};
String ss = arrToString(arr);
System.out.println("排序前:"+ss);
//第一次比较
for(int i=0;i<arr.length-1;i++){
if(arr[i]>arr[i+1]){
int temp = arr[i+1];
arr[i+1] = arr[i];
arr[i] = temp;
}
}
System.out.println("第一次比较:"+arrToString(arr));
//第二次比较
for(int i=0;i<arr.length-1-1;i++){
if(arr[i]>arr[i+1]){
int temp = arr[i+1];
arr[i+1] = arr[i];
arr[i] = temp;
}
}
System.out.println("第二次比较:"+arrToString(arr));
//第三次比较
for(int i=0;i<arr.length-1-2;i++){
if(arr[i]>arr[i+1]){
int temp = arr[i+1];
arr[i+1] = arr[i];
arr[i] = temp;
}
}
System.out.println("第三次比较:"+arrToString(arr));
//第四次比较
for(int i=0;i<arr.length-1-3;i++){
if(arr[i]>arr[i+1]){
int temp = arr[i+1];
arr[i+1] = arr[i];
arr[i] = temp;
}
}
System.out.println("第四次比较:"+arrToString(arr));
}
//把数组中的元素按照指定的规则组成一个字符串
public static String arrToString(int[] arr){
StringBuilder sb = new StringBuilder();
sb.append("[");
for(int i =0;i<arr.length;i++){
if(i==arr.length-1){
sb.append(arr[i]);
}
else{
sb.append(arr[i]+",");
}
}
sb.append("]");
String s = sb.toString();
return s;
}
}
运行结果
代码优化
public class ArrayDemo {
public static void main(String[] args){
//定义一个数组
int[] arr ={34,43,25,55,12};
String ss = arrToString(arr);
System.out.println("排序前:"+ss);
for(int x=0;x<arr.length-1;x++){
for(int i =0;i<arr.length-1-x;i++){
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
System.out.println("排序后:"+arrToString(arr));
}
//把数组中的元素按照指定的规则组成一个字符串
public static String arrToString(int[] arr){
StringBuilder sb = new StringBuilder();
sb.append("[");
for(int i =0;i<arr.length;i++){
if(i==arr.length-1){
sb.append(arr[i]);
}
else{
sb.append(arr[i]+",");
}
}
sb.append("]");
String s = sb.toString();
return s;
}
}
Arrays
Arrays类包含用于操作数组的各种方法
public static String toString(int[] a) 返回指定数组的内容的字符串表示形式
public static void sort(int[] a) 按照数字顺序排列指定的数组
import java.util.Arrays;
public class ArraysDemo {
public static void main(String[] args) {
int[] arr = {34,43,25,55,12};
System.out.println("排序前:"+Arrays.toString(arr));
Arrays.sort(arr);
System.out.println("排序后:"+Arrays.toString(arr));
}
}