今天我们来学习一下Java中的直接排序、选择排序、冒泡排序。
一:直接排序
直接排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
import java.util.*;
public class DSort{
public static void main(String []args){
int [] arrays = {56,78,33,26,99,103,52,44};
//两个for循环的嵌套
//外层for负责确定循环中需要替换的位,内层负责比较
for(int i = 0;i<arrays.length;i++){
for (int j = i;j<arrays.length;j++){
if(arrays[i]>arrays[j]){
int temp = arrays[i];
arrays[i]=arrays[j];
arrays[j]=temp;
}
}
}
System.out.println( Arrays.toString(arrays));
}
}
代码实现:
二:选择排序
选择排序和直接排序很类似,每次选择出最大或者最小的一个,存放在起始或者末尾,知道全部比较完毕。
import java.util.*;
public class SSort{
public static void main(String []args){
int[] arrays = {56,78,33,26,99,103,52,44};
for(int i = 0;i<arrays.length;i++){
int max = arrays[i];
int index = i;
for (int j = 0;j<arrays.length;j++){
if(max < arrays[j]){
max = arrays[j];
index = j;
System.out.println( Arrays.toString(arrays));
}
max = arrays[i];
arrays[i] = arrays[index];
arrays[index] = max;
System.out.println(Arrays.toString(arrays));
}
}
System.out.println(Arrays.toString(arrays));
}
}
代码实现:
三:冒泡排序
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
import java.util.*;
public class BSort{
public static void main(String[] args){
int [] arrays = {56,78,33,26,99,103,52,44};
for(int i = 0;i<arrays.length;i++){
for (int j = 0;j<arrays.length-i-1;j++){
if(arrays[j]<arrays[j+1]){
int temp;
temp = arrays[j];
arrays[j] = arrays [j+1];
arrays[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(arrays));
}
}
代码实现: