package day3.yub4by03.p3;
/*
3.5 冒泡排序原理
一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,
依次对所有的数据进行操作,直至所有数据按要求完成排序
如果有n个数据进行排序,总共需要比较n-1次
每一次比较完毕,下一次的比较就会少一个数据参与
*/
public class ArrayDemo {
public static void main(String[] args) {
int[] arr ={87, 55, 3, 99, 678, 12};
System.out.println("before sort:" + arrToStr(arr));
/*//第1轮比较
for(int i=0; i<arr.length-1-0; i++){ //arr.length-1是为了防止下行arr[i+1]数组下标越界
if(arr[i] > arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
System.out.println(arrToStr(arr));
//第2轮比较
for(int i=0; i<arr.length-1-1; i++){
if(arr[i] > arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
System.out.println(arrToStr(arr));
//第3轮比较
for(int i=0; i<arr.length-1-2; i++){
if(arr[i] > arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
System.out.println(arrToStr(arr));*/
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("after sort:" + arrToStr(arr));
}
public static String arrToStr(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]).append(", ");
}
}
sb.append("]");
String s = sb.toString();
return s;
}
}
package day3.yub4by03.p3;
import java.util.Arrays;
/*
3.6 Arrays
Arrays类包含了用于操作数组的各种方法(如排序和搜索等),详见API文件
Arrays在java.util下,用到时记得导包
Arrays的常用方法
public static String toString(int[] a) 返回指定数组的内容的字符串表示形式
public static void sort(int[] a) 按照数字顺序排列指定的数组
工具类(Math System Arrays ...)设计思想(通过查看它们的源码可以得出以下结论)
1、构造方法用 private 修饰
2、成员用 public static 修饰
*/
public class ArraysDemo {
public static void main(String[] args) {
int[] arr ={87, 55, 3, 99, 678, 12};
System.out.println("before sort:" + Arrays.toString(arr));
Arrays.sort(arr);
System.out.println("after sort:" + Arrays.toString(arr));
}
}