1、直接排序
public class DSort{ public static void main(String[] args){ int[] arrays = {56,34,67,22,87,94}; //两个for循环的嵌套 //外层负责确定循环中需要替换的位,内层负责比较 for(int i = 0;i<arrays.length;i++){ for(int j = 0;j<arrays.length;j++){ if(arrays[i]<arrays[j]){ int temp = arrays[j]; arrays[j] = arrays[i]; arrays[i] = temp; } } } //数组遍历方法一 for(int i = 0;i<arrays.length;i++){ System.out.print(arrays[i]+" "); } System.out.println(); //数组的遍历方法二,使用增强for循环 for(int item : arrays){ System.out.print(item+" "); } } }2、选择排序
public class SSort{ public static void main(String[] args){ int[] arrays = {56,34,67,22,87,94}; //两个for循环的嵌套 //外层负责确定循环中需要替换的位,内层负责比较 for(int i = 0;i<arrays.length;i++){ int max = arrays[i];//每次循环完都是新的max int index = i; for(int j = i;j<arrays.length;j++){ if(max < arrays[j]){ //max = arrays[j]; index = j; } } max = arrays[i]; arrays[i] = arrays[index]; arrays[index] = max; } //数组遍历方法一 for(int i = 0;i<arrays.length;i++){ System.out.print(arrays[i]+" "); } System.out.println(); //数组的遍历方法二,使用增强for循环 for(int item : arrays){ System.out.print(item+" "); } } }3、冒泡排序(收敛速度快)
public class BSort{ public static void main(String[] args){ int[] arrays = {56,34,67,22,87,94}; for(int i = 0;i<arrays.length;i++){ //i控制趟数 for(int j = i;j<arrays.length-i-1;j++){//j控制比较的位数 if(arrays[j] < arrays[j+1]){ int temp = arrays[j]; arrays[j] = arrays[j+1]; arrays[j+1] = temp; } } } //数组遍历方法一 for(int i = 0;i<arrays.length;i++){ System.out.print(arrays[i]+" "); } System.out.println(); //数组的遍历方法二,使用增强for循环 for(int item : arrays){ System.out.print(item+" "); } } }插入排序优化
import java.util.*; public class InsetSort{ public static void main(String[] args){ int[] arrays = {12,51,41,21,89,64}; //12,51,41,21,89,64 //12,41,51,21,89,64 //12,41,21,51,89,64 //12,21,41,51,89,64 //12,21,41,51,89,64 //12,21,41,51,64,89 sort(arrays);//调用sort方法 System.out.println(Arrays.toString(arrays)); } //定义一个插入排序的sort方法 static int[] sort(int[] args){ for(int i = 1;i<args.length;i++){ //先定义一个temp存放当前值 int j; int temp = args[i]; //for循环中判断条件是当j>0且当前值小于前一个值 //就将前一个值赋给当前位 for(j = i;j>0&&temp<args[j-1];j--){ args[j] = args[j-1]; } //此处的j是for循环后的j--值,即为当前值的前一个值 //将temp的值赋给argd[j] args[j] = temp; } return args; } }