3.排序之冒泡排序
问题描述
- 对数组进行冒泡排序
- 对数组进行升序排序
- 对数组进行降序排序
计算方式
- 循环比较每相邻数组的两个元素,把最值放最前边或最后边,从头到尾只要把每一个元素都比较一遍,就可以找到一个最值
- 那只要除最值以外的所有元素继续比较一遍,就又找出一个最值
- 依此类推就可以找出所有的最值
- 当然,在找最值时,会把符合条件的元素进行值交换
源码
package com.opensourceteams.modeles.common.gramar.数组;
/**
* 开发者:刘文 Email:[email protected]
* 16/2/25 下午9:18
* 功能描述:数组冒泡排序
* 数组升序排序
* 数组降序排序
*/
public class ArraySortBubble {
/**
*
* @param args
*/
public static void main(String[] args) {
int[] array = {3,9,5,5,10,1};
println(bubbleAsc(array));
println("============");
println(bubbleDesc(array));
}
/**
* 数组升序排序
* @param array
* @return
*/
public static int[] bubbleAsc(int[] array){
if(array == null || array.length == 0){
System.out.println("直接退出了");
return array;
}
int temp = array[0];
for(int i = 0 ; i < array.length ; i++){
for(int j = 0 ; j < array.length -1 - i;j++){
if(array[j] > array[j+1]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
return array;
}
/**
* 数组降序排序
* @param array
* @return
*/
public static int[] bubbleDesc(int[] array){
if(array == null || array.length == 0){
System.out.println("直接退出了");
return array;
}
int temp = array[0];
for(int i = 0 ; i < array.length ; i++){
for(int j = 0 ; j < array.length -1 - i;j++){
if(array[j] < array[j+1]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
return array;
}
/**
* 打印数组
* @param array
*/
public static void println(int[] array){
for(int i = 0 ; i < array.length ; i++){
System.out.println(array[i]);
}
};
/**
* 打印对象
* @param obj
*/
public static void println(Object obj){
System.out.println(obj.toString());
};
}