关于数组的排序,数组的排序有很多种方法,常见的有选择排序和冒泡排序。
A.选择排序
思路:
第一次比较:首先将下标为0的元素与其他元素进行逐一比较.比较结果得出较小的那个存储到下标为0的元素内.经过第一次的筛选比较,能够得出元素中最小值并赋值到下标为0的元素当中。
第二次比较:同样将下标为1的元素和其后面的元素进行逐一比较,这一轮又筛选出剩余元素中的最小值,并交换赋值存储到下标为1的元素中
以此类推,进行了(元素个数-1)次比较筛选之后,就可以得出最后的有序数组.
步骤:
创建一个方法,创建一个数组变量。因为考虑到元素之间的比较是多次的,利用for
循环控制比较的次数。外面一层控制着要进行多少轮的比较,里面一层控制每一个元素后面还有多少个元素需要比较。
代码实现
Class Demo{
public static void main(String[] args){
int [] arr = {1,7,6,9,11,5};
sort(arr);
System.out.print("arr="+arr);
}
public static void sort(int[] arr){
for(int x = 0;x<arr.length;x++){
for(int y=x+1;y<arr.length-1;y++){
if (arr[x]>arr[y]){
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
}
B .冒泡排序
思路:相邻的两个元素进行比较,如果符合条件就进行换位。
public static void bubbleSort(int[] arr){
for(int x= 0;x<arr.length-1;x++){
for(int y = 0;y<arr.length-1;y++){
if(arr[y]>arr[y+1]){
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
选择排序性能比较低,希尔排序是效率最高的(三层循环加位运算).
浙公网安备 33010602011771号