排序(冒泡)
应用库函数
import java.util.Arrays;
写一个 swap 函数,实现元素之间的交换
public static void swap(int [] a,int i,int j) {
int t=a[i];
a[i]=a[j];
a[j]=t;
}
冒泡排序法1:
无序[0,a.length-i)
有序[a.length-i,a.length)
把大的往后冒泡
public static void bubbleSort(int [] a) {
for(int i=0;i<a.length;i++)
{
for(int j=1;j<a.length-i;j++){
if(a[j-1]>a[j])
{
swap(a,j-1,j);
}
}
}
}
冒泡排序法2:
无序[i,a.length)
有序[0,i)
把小的往前冒泡
public static void bubbleSort2(int [] a) {
for(int i=0;i<a.length;i++)
{
for(int j=a.length-1;j<i;j--){
if(a[j]<a[j-1])
{
swap(a,j,j-1);
}
}
}
}
构造函数用来输出结果
public static void testBubbleSort(int [] a) {
System.out.println("请输入原数组:");
System.out.println(Arrays.toString(a));
bubbleSort(a);
System.out.println("请输入现数组:");
System.out.println(Arrays.toString(a));
}
写主函数,分别定义有序、无序数组,进行排序
public static void main(String[] args) {
int [] a={3,5,2,6,9,8,1};
int [] b={1,2,3,4,5,6,7};
int [] c={3,3,3,3,3,3,3};
testBubbleSort(a);
testBubbleSort(b);
testBubbleSort(c);
}
完整代码如下:
import java.util.Arrays;
public class MaoPao {
public static void swap(int [] a,int i,int j) {
int t=a[i];
a[i]=a[j];
a[j]=t;
}
public static void bubbleSort(int [] a) {
for(int i=0;i<a.length;i++)
{
for(int j=1;j<a.length-i;j++){
if(a[j-1]>a[j])
{
swap(a,j-1,j);
}
}
}
}
public static void bubbleSort2(int [] a) {
for(int i=0;i<a.length;i++)
{
for(int j=a.length-1;j<i;j--){
if(a[j]<a[j-1])
{
swap(a,j,j-1);
}
}
}
}
public static void testBubbleSort(int [] a) {
System.out.println("请输入原数组:");
System.out.println(Arrays.toString(a));
bubbleSort(a);
System.out.println("请输入现数组:");
System.out.println(Arrays.toString(a));
}
public static void main(String[] args) {
int [] a={3,5,2,6,9,8,1};
int [] b={1,2,3,4,5,6,7};
int [] c={3,3,3,3,3,3,3};
testBubbleSort(a);
testBubbleSort(b);
testBubbleSort(c);
}
}