您的位置:首页 > 其它

数组的选择排序和冒泡排序

2016-05-05 21:46 134 查看
一.选择排序

package com.saiermeng;

public class ArrayTest1 {

public static void main(String[] args){

int[] arr = {5,1,6,4,2,8,9};

printArray(arr); // 打印没有排序前的数组

selectSort(arr);

printArray(arr); // 打印排序后的数组

}

/*

选择排序。

内循环结束一次,最值出现头角标位置上。

*/

public static void selectSort(int[] arr)

{

for (int x=0; x<arr.length-1 ; x++)

{

for(int y=x+1; y<arr.length; y++)

{

if(arr[x]>arr[y])

{

int temp = arr[x];

arr[x] = arr[y]; //这个交换使得较小的数在左边

arr[y]= temp;

}

}

}

}

public static void printArray(int[] arr) //把没有排序前的数组,和排序后的数组分别打印一遍。

{

System.out.print("[");

for(int x=0; x<arr.length; x++)

{

if(x!=arr.length-1) //arr.length-1=6

System.out.print(arr[x]+", ");

else

System.out.println(arr[x]+"]"); arr[6]=9,所以9后面不是“,”而是“]”

}

}

}

运行的结果是:

[5, 1, 6, 4, 2, 8, 9]

[1, 2, 4, 5, 6, 8, 9]

二.冒泡排序

package com.saiermeng;

public class ArrayTest3 {

public static void main(String[] args){

int [] arr = new int[]{5,1,6,4,2,8,9};

printArray(arr);

bubbleSort(arr);

printArray(arr);

}

public static void bubbleSort(int [] arr){

for(int x=0; x<arr.length-1; x++)

{

for(int y=0; y<arr.length-x-1; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。

{

if(arr[y]>arr[y+1])

{

int temp = arr[y];

arr[y] = arr[y+1];

arr[y+1] = temp;

}

}

}

}

public static void printArray(int[] arr)

{

System.out.print("[");

for(int x=0; x<arr.length; x++)

{

if(x!=arr.length-1)

System.out.print(arr[x]+", ");

else

System.out.println(arr[x]+"]");

}

}

}

运行的结果是:

[5, 1, 6, 4, 2, 8, 9]

[1, 2, 4, 5, 6, 8, 9]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: