初识java
新的学期初识Java,在这一周的Java学习中学习到了两种排序的方法:冒泡法和选择法排序
首先说一下冒泡法
例如一组数据5 9 3 1 6从小到大排列
第一轮:5和9计较不需要交换
9和3比较交换位置
9和1比较交换位置
9和6比较交换位置
第一轮结果:5 3 1 6 9
第二轮从第二个数开始以此类推
import java.util.Scanner;
public class rw1 {
//冒泡法
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
System.out.println(“请输入10个整数”);
int[] a=new int [10];//定义新数组
for(int i=0;i<10;i++)\{
a\[i\]=input.nextInt();//将数放入数组中
\}
for(int i=0;i<9;i++)\{
for(int j=i+1;j<10;j++)\{
if(a\[i\]>a[j]){
int temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
\}
System.out.println("排序后的数:");
for(int i=0;i<a.length;i++)\{
System.out.print(a\[i\]+" ");
\}
}
}
选择法排序
法一
import java.util.Scanner;
public class rw3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int [] a=new int[10];//定义一个新数组
System.out.println(“请输入10个数”);
for(int i=0;i<9;i++)\{
a\[i\]=input.nextInt();//将用户输入的数放入数组中
\}
System.out.println("未排序时:");
for(int i=0;i<9;i++)\{
System.out.print(a\[i\]+"\\t");//将数从数组中提出来
\}
for(int i=0;i<9;i++)\{//一定一动
for(int j=i+1;j<10;j++)\{//每一轮循环找出最小的
if(a\[i\]>a[j]){
int t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
System.out.println(“\n排序后:”);
for(int i=0;i<10;i++){
System.out.print(a[i]+”\t”);//提出排序后的数组中的数
}
}
}
- 该排序方法利用数组下标来寻找特殊数字,可减少使用电脑内存*
import java.util.Scanner;
//选择排序法.2
public class rw2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int [] arr=new int[10];
System.out.println(“请输入10个整数”);
for(int i=0;i<10;i++)\{
arr\[i\]=input.nextInt();
\}
int temp=0;
int min=0;
for(int i=0;i<9;i++)\{//一轮下来找到最小数的下标
min=i;
for(int j=i+1;j<10;j++)\{
if(arr\[min\]>arr[j]){
min=j;
}
}
if(min!=i){
temp=arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
}
System.out.println(“排序后的数组为:”);
for(int i=0;i<10;i++){
System.out.print(arr[i]+” “);
\}
}
}
还没有评论,来说两句吧...