/*选择排序*/
public class SelectSort2
{
public static void sort(int[] tempArr)
{
for(int i =0;i { /* 当初错误认为此处与冒泡排序极为相像,甚至觉得选择排序与冒泡排序毫无差别,其实相反,冒泡循环意味着每一次 循环都会将相邻的两个数比较这样每次都会排出数组中最大或最小的数。然后再次执行外层循环,再继续进入内层循环 再依次进行比较。 选择排序则是,第一次循环:咬定第一个数角标i=0的元素,依次与后面的元素比较,将最小或最大的数排出来,再进入 外层的第二次循环,并且此时咬定的数为角标为1的元素,但因为之前已将全数组中最小或最大的数排出所以没有必要再 与数组中角标为零得数比较而是通过j=i+1 将待比较的角标变成[2、3、...、tempArr.length)。 */ for(int j =i+1;j { if(tempArr[i]>tempArr[j]) { int temp = tempArr[i]; tempArr[i] = tempArr[j]; tempArr[j] = temp; } } } } public static void arrPrint(int[] tempArr) { System.out.print("["); for(int i = 0;i { if(i != tempArr.length - 1) { System.out.print(tempArr[i]+","); } else { System.out.println(tempArr[i]+"]"); } } } public static void main(String args[]) { int[] arr = new int[]{10,2,-7,8,1,12,6,7,9,3}; arrPrint(arr); sort(arr); arrPrint(arr); } } /*冒泡排序*/ public class MpSort2 { public static void sort(int[] tempArr) { for(int i = 0;i { for(int j = 0;j { if(tempArr[j]>tempArr[j+1]) { int temp = tempArr[j]; tempArr[j] = tempArr[j+1]; tempArr[j+1] = temp; } } } } public static void arrPrint(int[] tempArr) { System.out.print("["); for(int i = 0;i { if(i != tempArr.length-1) { System.out.print(tempArr[i]+","); } else { System.out.println(tempArr[i]+"]"); } } } public static void main(String[] args) { int[] arr = new int[]{10,2,-7,8,1,12,6,7,9,3}; arrPrint(arr); sort(arr); arrPrint(arr); } }