依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。
/**
* @author 兰皋
* @create 2018-12-13 22:46
* 经典算法:冒泡排序
*/
public class BubbleSort {
public static void main(String[] args){
int[] arr = {6,3,4,7,8,1};
System.out.println("数组排序前:");
for (int num : arr){
System.out.print(num + " ");
}
//冒泡排序
int temp;
boolean flag = true;
for (int i=0; i<arr.length-1; i++ ){//外层循环控制排序趟数
for (int j=0; j<arr.length-i-1; j++){//内层循环控制每一趟排序多少次
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = true;
}
}
if(!flag){
break;//若果没有发生交换,则退出循环
}
}
System.out.println("");
System.out.println("数组排序后:");
for (int num : arr){
System.out.print(num + " ");
}
}
}
2.字符串数组排序(使用Collections工具类排序)
/**
* @author 兰皋
* @create 2018-12-15 18:43
* 基本算法:字符串数组排序
*/
public class StringSort {
public static void main(String[] args){
String[] arr = {"c","a","b","1","3","2"};
System.out.println("数组排序前:");
for (String num : arr){
System.out.print(num + " ");
}
//使用Collections.sort方法排序
ArrayList<String> list = new ArrayList<>(arr.length);
for (String num : arr){
list.add(num);
}
Collections.sort(list);
System.out.println("");
System.out.println("数组排序后:");
for (String num : list){
System.out.print(num + " ");
}
}
}
3.递归方法求阶乘
public static int recurrence(int num){
if(num<=1)
return 1;
else
return num*recurrence(num-1);
}