写的可能比较多,也可能不是很好,但是很好理解,是个刚入门java的程序菜鸟,谢谢浏览!
1.冒泡上浮法排序
package 我的java;
import java.util.Scanner;
public class 冒泡上浮法排序 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//定义一个数m,做数组长度
System.out.println("请输入数组长度:");
int m=scanner.nextInt();
if(m<=0) {
System.out.println("输入错误!!!");
}
else {
//定义数组
int ar[]=new int[m];
System.out.println("请依次输入数组元素:");
for(int i=0;i<m;i++) {
ar[i]=scanner.nextInt();
}
if(m==1) {
System.out.println(ar[0]);
}
else {
//上浮法轮数,将最小的数依次放在数组最上边
for(int k=0;k<m;k++) {
int changer,l=m-2;
for(int p=m-1;p>=0;p--) {
//如果数组后一个元素小于前一个元素,则交换
if(ar[p]<ar[l]) {
changer=ar[p];
ar[p]=ar[l];
ar[l]=changer;
}
l--;
if(l<0)
break;
}
}
//将排序后的数组元素依次输出
System.out.print("上浮法排序后为:");
for(int k=0;k<m;k++) {
System.out.printf("%d ",ar[k]);
}
}
}
}
}2.冒泡下沉法排序
package 我的java;
import java.util.Scanner;
public class 冒泡下沉法排序 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//输入一个数n,代表数组容量
System.out.println("请输入数组长度:");
int n=scanner.nextInt();
if(n<=0) {
System.out.println("输入错误!!!");
}
else {
//创建一个数组
int arr[]=new int[n];
//循环输入
System.out.println("请依次输入数组元素:");
for(int i=0;i<n;i++) {
arr[i]=scanner.nextInt();
}
if(n==1) {
System.out.println(arr[0]);
}
else {
//冒泡下沉法轮数
for(int k=0;k<n;k++) {
int l=1,changer;
//每轮比较出一个最大的依次放在数组下面
for(int p=0;p<n;p++) {
//如果数组前一个元素大于后一个元素,则交换
if(arr[p]>arr[l]) {
changer=arr[p];
arr[p]=arr[l];
arr[l]=changer;
}
l++;
if(l>n-1)
break;
}
}
//将排序后的数组元素依次输出
System.out.print("下沉法排序后为:");
for(int k=0;k<n;k++) {
System.out.printf("%d ",arr[k]);
}
}
}
}
}版权声明:本文为weixin_51647957原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。