思想:
每一轮选出一个最大的值 放在数组末尾 因此n个元素应该比较n-1轮以确定n-1个最大的数(最小的数肯定在最前面了)
而每一轮中通过两两比较 如果前一个数比后一个数大 就交换两者大小。第i轮确定了最大的i个数 这i个数由小到大放在数组的最后,因此,第i轮中比较大小只需要比较前n-1-i个数。
下面为代码:
public class DemoButtleSort {
public static void ButtleSort(int[] a) {
int len = a.length;
int temp;
for(int i = 0 ; i < len - 1 ; i++)
{
for(int j = 0 ; j < len - i - 1; j++) {
if(a[j]>a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = new int[]{2,6,8,3,2,5,9,6,3,4,2};
for(int i = 0 ; i < arr.length ; i ++)
{
System.out.print(arr[i] + " ");
}
System.out.println();
ButtleSort(arr);
for(int i = 0 ; i < arr.length ; i ++)
{
System.out.print(arr[i] + " ");
}
}
}