package
com.zheban.test;
/**
* 数组升序
* @author King
*
*/
public class Test1 {
public static void main(String[] args) {
int[] arr1 = new int[] { 1, 3, 5, 7, 0, 45, 32 };
// 排序前的数组打印
print(arr1);
// 冒泡排序
sort02(arr1);
// 排序后的数组打印
print(arr1);
}
/**
* 打印功能 返回值:无 参数列表:arr1[];
*
*/
static void print(int[] arr1) {
System.out.print("[");
for (int i = 0; i < arr1.length; i++) {
if (i != arr1.length - 1)
System.out.print(arr1[i] + ",");
else
System.out.println(arr1[i] + "]");
}
}
/**
* 排序方式:冒泡排序:冒泡排序i没有参与比较,只起控制轮数的作用;
* <p>
*
* 设len = (length-1);防止数组越界;
* (因为在下列代码中有,arr[j]和arr[j+1]作比较,j+1会提前到达长度值,减一刚好不会越界) 思想:
* (冒泡比较是每一轮:下标0和1,1和2,2和3,3和4.....做比较,因此,最大值永远在右边)内循环一次之后,最大值已经找到,已经排到最后;
* 因此第二轮比较的时候,最后一个数字不再进行参与,即在参与比较的长度中,长度(成员)已经减少一个,len-i;
* ;随着i的变大,进行比较的成员的长度便一轮一轮的减短
* </p>
*
* 返回值:没有 参数类型:int 型; 选择排序:第一次循环结束,最值在最左边;
*
* @param arr1
*
*/
static void sort02(int[] arr1) {
/**
* len = arr1.length-1;因为有j+1,所以不减1会数据越界
*/
int len = arr1.length - 1;// 用于内循环
for (int i = 1; i <= arr1.length; i++) {
// 俩俩比较,随着进行比较的轮数的增多,而比较的长度却在一个一个的减少
for (int j = 0; j < len - i; j++) {
if (arr1[j] > arr1[j + 1]) {
int temp = arr1[j];
arr1[j] = arr1[j + 1];
arr1[j + 1] = temp;
}
}
}
}
/**
* 排序方式:选择排序; 返回值:没有 参数类型:int 型; 选择排序:第一次循环结束,最值在最大左边;
*
* @param arr1
*/
static void sort01(int[] arr1) {
for (int i = 0; i < arr1.length; i++) {
for (int j = i + 1; j < arr1.length; j++) {
int temp = 0;
if (arr1[i] > arr1[j]) {
temp = arr1[i];
arr1[i] = arr1[j];
arr1[j] = temp;
}
}
}
}
}
/**
* 数组升序
* @author King
*
*/
public class Test1 {
public static void main(String[] args) {
int[] arr1 = new int[] { 1, 3, 5, 7, 0, 45, 32 };
// 排序前的数组打印
print(arr1);
// 冒泡排序
sort02(arr1);
// 排序后的数组打印
print(arr1);
}
/**
* 打印功能 返回值:无 参数列表:arr1[];
*
*/
static void print(int[] arr1) {
System.out.print("[");
for (int i = 0; i < arr1.length; i++) {
if (i != arr1.length - 1)
System.out.print(arr1[i] + ",");
else
System.out.println(arr1[i] + "]");
}
}
/**
* 排序方式:冒泡排序:冒泡排序i没有参与比较,只起控制轮数的作用;
* <p>
*
* 设len = (length-1);防止数组越界;
* (因为在下列代码中有,arr[j]和arr[j+1]作比较,j+1会提前到达长度值,减一刚好不会越界) 思想:
* (冒泡比较是每一轮:下标0和1,1和2,2和3,3和4.....做比较,因此,最大值永远在右边)内循环一次之后,最大值已经找到,已经排到最后;
* 因此第二轮比较的时候,最后一个数字不再进行参与,即在参与比较的长度中,长度(成员)已经减少一个,len-i;
* ;随着i的变大,进行比较的成员的长度便一轮一轮的减短
* </p>
*
* 返回值:没有 参数类型:int 型; 选择排序:第一次循环结束,最值在最左边;
*
* @param arr1
*
*/
static void sort02(int[] arr1) {
/**
* len = arr1.length-1;因为有j+1,所以不减1会数据越界
*/
int len = arr1.length - 1;// 用于内循环
for (int i = 1; i <= arr1.length; i++) {
// 俩俩比较,随着进行比较的轮数的增多,而比较的长度却在一个一个的减少
for (int j = 0; j < len - i; j++) {
if (arr1[j] > arr1[j + 1]) {
int temp = arr1[j];
arr1[j] = arr1[j + 1];
arr1[j + 1] = temp;
}
}
}
}
/**
* 排序方式:选择排序; 返回值:没有 参数类型:int 型; 选择排序:第一次循环结束,最值在最大左边;
*
* @param arr1
*/
static void sort01(int[] arr1) {
for (int i = 0; i < arr1.length; i++) {
for (int j = i + 1; j < arr1.length; j++) {
int temp = 0;
if (arr1[i] > arr1[j]) {
temp = arr1[i];
arr1[i] = arr1[j];
arr1[j] = temp;
}
}
}
}
}