package com.student.common; public class Sort { public static void main(String[] args) { int [] number = {41,24,76,11,45,64,21,69,19,36}; //selectSort(number); //bobSort(number); insertSort(number); for(int j : number) System.out.println(j); } /** * 选择排序 将要排序的对象分作两部份,一个是已排序的,一个是未排序的, 从后端未排序部份选择一个最小值,并放入前端已排序部份的最后一个,例如: [1] 80 31 37 10 70 48 60 33 80 选出最小值1 [1 10] 31 37 80 70 48 60 33 80 选出最小值10 [1 10 31] 37 80 70 48 60 33 80 选出最小值31 [1 10 31 33 37] 70 48 60 80 80 ...... [1 10 31 33 37 48] 70 60 80 80 ...... [1 10 31 33 37 48 60] 70 80 80 ...... [1 10 31 33 37 48 60 70] 80 80 ...... [1 10 31 33 37 48 60 70 80] 80 ...... * @param number */ public static void selectSort(int [] number) { for(int i=0;i<number.length;i++) { for(int j=i+1;j<number.length;j++) if(number[j] <number[i]) swap(number,i,j); } } /** * 插入排序像是玩朴克一样,我们将牌分作两堆,每次从后面一堆的牌抽出最前端的牌,然后插入前面一堆牌的适当位置,
例如: [77 92] 67 8 6 84 55 85 43 67 将77插入92前 [67 77 92] 8 6 84 55 85 43 67 将67插入77前 [8 67 77 92] 6 84 55 85 43 67 将8插入67前 [6 8 67 77 92] 84 55 85 43 67 将6插入8前 [6 8 67 77 84 92] 55 85 43 67 将84插入92前 [6 8 55 67 77 84 92] 85 43 67 将55插入67前 [6 8 55 67 77 84 85 92] 43 67 ...... [6 8 43 55 67 77 84 85 92] 67 ...... [6 8 43 55 67 67 77 84 85 92] ...... * @param number */ public static void insertSort(int [] number) { for(int j=1;j<number.length;j++) { //选择一个数 int temp = number[j]; int i= j-1; while(temp < number[i]) { //数据往后移 number[i+1] = number[i]; i--; if(i==-1) break; } number[i+1] = temp; } } /** * 冒泡排序 * @param number */ public static void bobSort(int [] number) { for(int i=0;i<number.length;i++) { for(int j=0;j<number.length-i-1;j++) if(number[j] > number[j+1]) swap(number, j+1, j); } } private static void swap(int[] number, int i, int j) { int t; t = number[i]; number[i] = number[j]; number[j] = t; } }
本文详细介绍了三种常见的排序算法:选择排序、插入排序和冒泡排序。通过具体的代码实现和示例,深入浅出地讲解了每种算法的工作原理、步骤及应用。选择排序通过不断寻找最小元素并将其放到已排序序列的末尾;插入排序则像玩扑克牌一样,将每个元素插入到已排序部分的正确位置;冒泡排序通过重复比较相邻元素并交换顺序错误的元素来达到排序目的。
6399

被折叠的 条评论
为什么被折叠?



