冒泡排序:依次比较两个相邻的元素,将值大的元素交换至右端,一轮比较过后,最大的元素在最右端。
public class BubbleSort {
public static void main(String[] args) {
int[] arr={11,2,223,3,42,9,};//随意定义个数组,测试
BubbleSort(arr);
}
public static void BubbleSort(int arr[]){
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
int x;//定义中间变量,用于之后的两变量值交换
if(arr[j]>arr[j+1]){
//将值大的放到右边
x=arr[j+1];
arr[j+1]=arr[j];
arr[j]=x;
}
}
}
//遍历数组
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
}
}
控制台结果:
选择排序:依次比较第一个数与剩下数的大小,小的数与第一个数交换位置,一轮过后,最小的数在最右端;第二轮比较第二个数与剩下的数的大小,小的数与第二个数交换位置,一直进行下去,直至最后一个数。
public class QuickSort {
public static void main(String[] args) {
int[] arr={345,2,34,23,12,42,4};//随意定义一个数组进行测试
QuickSort(arr);
}
public static void QuickSort(int[] arr){
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++){
int x;//中间变量,方便进行两数值交换
if(arr[i]>arr[j]){
//进行比较,该条件成立则交换位置
x=arr[i];
arr[i]=arr[j];
arr[j]=x;
}
}
}
//遍历数组
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
}
}
控制台结果:
以上便是冒泡排序和选择排序的解析,有问题可以在评论区提出。