package Day4.Array_Package;/**
* <h>IdeaNewStart</h>
*
* @author : AChun
* @date : 2021-12-19 19:31
* @since : 1.8
**/
/**
* 类成员变量:首字母小写和驼峰原则:monthSalary,除了第一个单词意外,后面的单词首字母大写
* 局部变量:首字母小写和驼峰原则
* 常量:大写字母和下划线:PI_VALUE
* 类名:首字母大写和驼峰原则:Man,GoodMan
* 方法名:首字母小写和驼峰原则:run(),runRun()
* */
import java.util.Scanner;
/**
* 选择排序
* */
public class SelectSort_Demo {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//定义一个长度为5的空数组
int[] arr=new int[5];
//调用传值方法,数组和控制台录入创建的对象是该方法的参数
add(arr,scanner);
//调用打印数组方法
printarr(arr);
//调用选择排序方法
selectSort(arr);
//调用打印数组方法
printarr(arr);
}
//选择排序
/* 取第一个数与后面做比较,碰到比它小的就互换位置
* [4,12,3,6,15]
* >
* [4,12,3,6,15]
* >
* [3,12,4,6,15]
* >
* [3,12,4,6,15]
* >
* 第二轮
* [3,12,4,6,15]
* >
* [3,4,12,6,15]
* >
* [3,4,6,12,15]
* ...以此类推
* 第一轮排序只需要遍历4次,就是 (数组对象名).length-1次a
* */
public static void selectSort(int[] arr) {
int empty=0;//定义一个空值变量
//先便利出总共需要比较几次:arr.lenght-1(自身不用和自身比较)
for (int i = 0; i < arr.length-1; i++) {
// int i = 0; j = 1,2,3,4
// int i = 1; j = 2,3,4
// int i = 2; j = 3,4
// int i = 3; j = 4
// int i = 4; j = 0(j不比较了,结束了)
for(int j=i+1;j<arr.length;j++){
if(arr[i]<arr[j]){//arr[i]小于与它后面的数,即j=i+1,就互换位置
empty=arr[i];
arr[i]=arr[j];
arr[j]=empty;
}
}
}
}
//打印数组
public static void printarr(int[] arr){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
System.out.println("]");
}
//传值
public static void add(int[] arr,Scanner scanner){
System.out.println("请输入数据进行选择排序");
for (int i = 0; i < arr.length; i++) {
System.out.print("请输入第"+(i+1)+"个数字:");
arr[i]=scanner.nextInt();
}
}
}
运行结果:

本文详细介绍了一个简单的选择排序算法实现过程,包括如何通过比较元素来逐步完成数组的排序,并提供了完整的Java代码示例。
973

被折叠的 条评论
为什么被折叠?



