1.冒泡排序:
排序:将一组数据按照固定的规则进行排序
冒泡排序:一种排列的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,依次对所有数据进行操作,直至所有数据按要求完成排序。
冒泡排序原理:
如果有n个数据进行排序,总共需要比较n-1次
每一次比较完毕,下一次的比较就会少一个数据参加
代码演示:
package com.aynu3;
/*
* 冒泡排序:
* */
public class ArrayDemo {
public static void main(String[] args) {
//定义一个数组
int[] arr = {24, 69, 80, 57, 13};
System.out.println("排序前" + arrayToString(arr));
//第一次比较
for (int i = 0; i < arr.length-1; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
System.out.println("第一次比较后" + arrayToString(arr));
//第二次比较
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("第二次比较后" + arrayToString(arr));
//第三次比较
for (int i = 0; i < arr.length-1-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("第三次比较后" + arrayToString(arr));
//第四次比较
for (int i = 0; i < arr.length-1-1-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("第四次比较后" + arrayToString(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("排序后" + arrayToString(arr));
}
//把数组中的元素按照指定的规则组成一个字符串,{元素1,元素2,.......}
public static String arrayToString(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;
}
}
运行结果:
排序前[24,69,80,57,13]
第一次比较后[24,69,57,13,80]
第二次比较后[24,57,13,69,80]
第三次比较后[24,13,57,69,80]
第四次比较后[13,24,57,69,80]
排序后[13,24,57,69,80]
2.Arrays类的概述和常用方法
Arrays类包含用于操作数组的各种方法
方法名 | 说明 |
public static String toString(int[] a) | 返回指定数组的内容的字符串表示形式 |
public static void sort(int[] a) | 按照数字顺序排列指定的数组 |
package com.aynu4;
/*
* Array 类包含用于操作数组的各种方法
*
*
* public static String toString(int[] a) 返回指定数组的内容的字符串表示形式
public static void sort(int[] a) 按照数字顺序排列指定的数组
* */
import java.lang.reflect.Array;
import java.util.Arrays;
public class ArrayDemo {
public static void main(String[] args) {
//定义一个数组
int[] arr={24,69,80,57,13};
System.out.println("排序前"+ Arrays.toString(arr));
Arrays.sort(arr);
System.out.println("排序后"+ Arrays.toString(arr));
}
}
运行结果:
排序前[24, 69, 80, 57, 13]
排序后[13, 24, 57, 69, 80]
工具类的设计思想:
构造方法用private修饰
成员用public static修饰