package com.practice.tain04;
public class Sorts {
//打印输出原来的数组
public static void arraysSort(int num[]) {
System.out.println("原来的数组:");
//循环输出数组中的元素
for(int i=0;i<num.length;i++) {
System.out.print(num[i]+" ");
}
}
//冒泡排序输出,降序
public static void arraysBuib(int num[]) {
System.out.println(); //换行
int temp=0; //交换变量
boolean flag; //是否交换的标志
//外层i-1
for(int i=0;i<num.length-1;i++) {
//内层k-1-i
flag=false; //表示还没交换
for(int k=0;k<num.length-1-i;k++) {
//两两相比小靠前,交换元素(升序<于号变成>于号)
if(num[k]<num[k+1]) {
temp=num[k];
num[k]=num[k+1];
num[k+1]=temp;
flag=true; //表示已经交换
}
}
if(!flag) { //判断表示如果非flag,说明已经排序好
break; //直接break退出
}
}
System.out.println("冒泡排序后的数组为:");
//1.for循环打印输出
// for(int i=0;i<num.length;i++) {
// System.out.print(num[i]+" ");
// }
//2.for增强型循环输出
for(int i:num) { //遍历数组
System.out.print(i+" ");
}
}
//直接选择排序
public static void sortChoose(int num[]) {
System.out.println(); //换行
//外层
for(int i=0;i<num.length;i++) {
int index=0; //临时变量
for(int j=0;j<num.length-i;j++) {
if(num[j]>num[index]) { //如果j大于index
index=j; //那么j的值就赋值给index
}
//声明临时temp变量,num[num.length-i-i]和num[index]交换元素
int temp=num[num.length-i-1];
num[num.length-i-1]=num[index];
num[index]=temp;
}
}
System.out.println("选择排序后为:");
//for增强型循环,遍历循环输出数组
for(int i:num) {
System.out.print(i+" ");
}
}
}
package com.practice.tain04;
//测试类
public class Test {
public static void main(String[] args) {
int num[]=new int[] {4,23,6,2,87,45,32,1}; //声明数组
Sorts.arraysSort(num); //因为是静态方法,所以直接类.方法名调用
Sorts.arraysBuib(num); //冒泡排序
Sorts.sortChoose(num); //直接选择排序
}
}