java中用冒泡排序法对数组进行排序
对数组进行排序通常使用冒泡排序法,冒泡排序法的排序原理如下:
(1).对数组中相邻的两个元素从前向后进行扫描。
(2).如果相邻两个元素中的第一个数比第二个数大,就交换这两个数,这样经过一次扫描后,最大的元素移动到数据序列的最后。
(3).重复(1)、(2)两个步骤,用同样的方法再对其前面的所有其他元素进行比较,当经过某次扫描后,如果没有需要交换的数据了,则算法结束。
第一个程序:
//冒泡排序
public class maopao{
public static void main(String[] args) {
int[] arr={50,13,55,97,27,38,49,65};
System.out.println("原数组中各元素的顺序:");
for(int i=0;i
System.out.print(arr[i]+" ");
}
//使用冒泡排序法对数组进行排序
for(int i=0;i
for(int k=0;k
//如果数组中前边元素比后边相邻元素值大
if(arr[k]>arr[k+1]){
//声明变量x用于保存数组中前边元素的值
int x=arr[k];
//将前边元素的值替换为后边相邻的元素
arr[k]=arr[k+1];
//用原来前边元素的值替换后边相邻元素的值
arr[k+1]=x;
}
}
}
System.out.println();
System.out.println("排序后数组中各元素的顺序:");
//输出排序后数组中各元素的值
for(int i=0;i
System.out.print(arr[i]+" ");
}
}
}
第二个程序:(增加了使用scanner()对数组,自由输入数组的功能)
import java.util.Scanner;
//冒泡排序
public class SortArrayDemo{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入数组的长度:(正整数!)");
int num=sc.nextInt();
System.out.println("请输入一维数组,数字中间用空格隔开。如1 3 5 7 9 ");
String[] arr=new String[num];
for(int i=0;i
arr[i]=sc.next();
}
//int[] arr={50,13,55,97,27,38,49,65};
System.out.println("原数组中各元素的顺序:");
for(int i=0;i
System.out.print(arr[i]+" ");
}
//使用冒泡排序法对数组进行排序
for(int i=0;i
for(int k=0;k
//如果数组中前边元素比后边相邻元素值大,比较的时候将字符串型的元素转换成整形
if(Integer.valueOf(arr[k])>Integer.valueOf(arr[k+1])){
//声明变量x用于保存数组中前边元素的值
String x=arr[k];
//将前边元素的值替换为后边相邻的元素
arr[k]=arr[k+1];
//用原来前边元素的值替换后边相邻元素的值
arr[k+1]=x;
}
}
}
System.out.println();
System.out.println("排序后数组中各元素的顺序:");
//输出排序后数组中各元素的值
for(int i=0;i
System.out.print(arr[i]+" ");
}
}
}