001-简单的java代码实现几种排序算法(插入,快速,冒泡,选择)

来源:互联网 发布:柏拉图自动生成软件 编辑:程序博客网 时间:2024/05/18 07:41

事先声明,本人小白,还望各位前辈不吝赐教。以下代码都在eclipse可以直接运行。

插入排序:

public class InsertSort {public void insertSort(int []array) {for (int i = 0; i < array.length; i++) {//第一层迭代,控制排序的趟数int j = i;while (j>0) {//第二层迭代,使得要插入的元素与之前的元素进行一一比较while (array[j]<array[j-1]) {int t = array[j];array[j] = array[j-1];array[j-1] = t;//若匹配到则替换之}j--;}System.out.println();System.out.println("第"+(i+1)+"次排序:");for (int j2 = 0; j2 < array.length; j2++) {//打印每次“排好序”的数组System.out.print(array[j2]+"\t");}}}public static void main(String[] args) {//使用一个简单的数组进行测试InsertSort insertSort = new InsertSort();int[] array = {3,2,1,4,3,2};insertSort.insertSort(array );}}
快速排序:

public class QuickSort {public void quickSort(int[] array, int low, int high) {//快排控制方法,也就是递归的实现方法if (low < high) {int partion = partion(array, low, high);quickSort(array, low, partion - 1);quickSort(array, partion + 1, high);}}public int partion(int[] array, int low, int high) {//核心方法,对当前的数组进行割分int key = array[low];while (low < high) {while (low < high && array[high] > key) {high--;}int t = array[low];array[low] = array[high];array[high] = t;while (low < high) {while (low < high && array[low] <= key) {low++;}int t1 = array[low];array[low] = array[high];array[high] = t1;}}array[high] = key;return high;}}

冒泡排序:

public class BubbleSort {public void bubbleSort(int []array) {int key ;int flag ;for (int i = 0; i < array.length; i++) {//第一层迭代,控制冒泡的次数flag = 1;//设置标记,一旦冒泡排序已经将数组排好顺序,跳出之System.out.println();System.out.println("第"+(i+1)+"趟冒泡:");key = 1;while (key<array.length) {//第二层迭代,控制冒泡,与相邻的数字进行比较以获得“冒”出来的资格if (array[key-1]>array[key]) {int t = array[key-1];array[key-1] = array[key];array[key] = t;flag = 0;}key++;}for (int j = 0; j < array.length; j++) {System.out.print(array[j]+"\t");}if (flag==1) {//如果排序已结束,跳出System.exit(0);}}}}

选择排序:

public class ChoiceSort {public void choiceSort(int []array) {for (int i = 0; i < array.length; i++) {for (int j = i; j < array.length; j++) {if (array[j]<array[i]) {int t = array[i];array[i] = array[j];array[j] = t;}}}for (int i : array) {System.out.println(i);}}}



0 0
原创粉丝点击