冒泡排序和选择排序
2014-05-14 22:03
260 查看
package test; /** * 常用的排序方法 * */ public class Sort { //冒泡排序 public int[] bubbleSort(int[] array){ /** * 思路:外层循环控制比较多少躺,内存循环控制每趟比较的次数 * 循环的躺数 = 数组元素的个数 - 1 * 比较的次数 = 数组元素的个数 - 1 - 循环的躺数(-1是防止数组脚标越界) * */ for(int i = 0;i < array.length-1;i ++){ for(int j = 0; j < array.length - 1 - i;j ++){ if(array[j] > array[j+1]){ int temp = 0; temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } return array; } //选择排序 public int[] selectSort(int[] array){ /** * 思路:将一个数组分为有序区和无序区,用一个数记录无序区的第一个数的下表,用这个下标所对应的数与 * 无序区中的其他数进行比较,记录比较过程中最小的数的下标,在讲这个下标赋值给这个标记下标 * */ for(int i = 0;i < array.length;i ++){ int min = i; for(int j = i + 1; j < array.length;j ++){ if(array[min] > array[j]){ min = j; } } if(min != array[i]){ int tmp = array[min]; array[min] = array[i]; array[i] = tmp; } } return array; } }