/** * 选择排序:首先第一趟从n个元素中找到最大或最小的元素与第一个元素交换; * 第二趟从第二个元素开始的第n-1个元素中再选出最小的放到第二位,以此类推。 * @author Administrator * */ public class SelectSort { /** * 有大到小 * * @param values */ public static void descSort(int[] values) { int temp = 0; for (int i = 0; i < values.length; i++) { for (int j = i + 1; j < values.length; j++) { // 如果后面的一位大于前面的以为,则两个值交换位置 if (values[i] < values[j]) { temp = values[i]; values[i] = values[j]; values[j] = temp; } } } } /** * 有大到小 * * @param values */ public static void ascSort(int[] values) { int temp = 0; for (int i = 0; i < values.length; i++) { for (int j = i + 1; j < values.length; j++) { // 如果后面的一位小于前面的以为,则两个值交换位置 if (values[i] > values[j]) { temp = values[i]; values[i] = values[j]; values[j] = temp; } } } } public static void main(String[] args) { int[] values = { 5, 1, 9, 10, 6, 4, 7, 8, 3, 2 }; SelectSort.ascSort(values); for (int i = 0; i < values.length; i++) { System.out.println(values[i]); } } }
package com.yt; /** * 插入排序:简单说就是数组里第二个和第一个比谁小,把小的放到第一个里, * 大的放到第二个里,然后第二个再和第三个比,小的还是放在前,一直比到这个数组结束 * @author Administrator * */ public class InsertSort { public static void injectionSort(int[] number){ for(int i = 1;i<number.length;i++){ int tmp = number[i]; int j = i-1; while(tmp<number[j]){ number[j+1] = number[j]; j--; if(j == -1) break; } number[j+1] = tmp; } } public static void main(String[] args) { int[] nums = { 2, 3, 9, 10, 5, 6, 8, 4, 7, 1 }; InsertSort.injectionSort(nums); for (int i = 0; i < nums.length; i++) { System.out.println(nums[i]); } } }
package com.yt; /** * 冒泡排序:将n个元素中的第一个和第二个相比较,如果两个元素的顺序为逆序,则交换两个元素的位置;再 * 进行第二个元素和第三个元素的比较,如此类推,只到比较第n-1个元素和n个元素为止。 * @author Administrator * */ public class MaoPaoSort { public static void mpDescSort(int[] values) { int temp = 0; for (int i = 1; i < values.length + 1; i++) { for (int j = 0; j < values.length - i; j++) { if (j < values.length - 1) { if (values[j] < values[j + 1]) { temp = values[j + 1]; values[j + 1] = values[j]; values[j] = temp; } } } } } public static void mm(int[] nums) { int temp = 0; for (int i = 0; i < nums.length; i++) { for (int j = 0; j < nums.length - i; j++) { if (j < nums.length - 1 && nums[j] > nums[j + 1]) { temp = nums[j]; nums[j] = nums[j + 1]; nums[j + 1] = temp; } } } } public static void main(String[] args) { int[] nums = { 2, 3, 9, 10, 5, 6, 8, 4, 7, 1 }; MaoPaoSort.mpDescSort(nums); for (int i = 0; i < nums.length; i++) { System.out.println(nums[i]); } } }