黑马程序员-java学习之排序算法

来源:互联网 发布:三星ml2161清零软件 编辑:程序博客网 时间:2024/03/28 21:48

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------

找了一些比较常见的一些算法,共享出来

package com.sort;/* * 请列举您了解的一些排序算法,并用Java语言实现一个效率较高的 * 冒泡排序 * 选择排序 * 插入排序 * 快速排序 * */public class Sort {public static void main(String[] args) {// TODO Auto-generated method stubint arr[] = {60, 20, 50, 12, 17, 39, 67};//bubbleSort(arr);//System.out.print("\n");//selectSort(arr);//System.out.print("\n");//insertSort(arr);//System.out.print("\n");//效率较高的是快速排序quickSort(arr, 0, arr.length - 1);for(int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}//冒泡排序public static void bubbleSort(int array[]) {int len = array.length;for(int i = 0; i < len - 1; i++) {for(int j = 0; j < len - i - 1; j++) {if(array[j] > array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}for(int i = 0; i < len; i++) {System.out.print(array[i] + " ");}}//选择排序public static void selectSort(int array[]) {int temp = 0;int len = array.length;for(int i = 0; i < len - 1; i++) {int min = array[i];int index = i;for(int j = i + 1; j < len; j++) {if(min > array[j]) {index = j;}}temp = array[i];array[i] = array[index];array[index] = temp;}for(int i = 0; i < len; i++) {System.out.print(array[i] + " ");}}//插入排序public static void insertSort(int array[]) {int len = array.length;for(int i = 1; i < len; i++) {int temp = array[i];int index = i;while(index > 0 && array[index - 1] > temp) {array[index] = array[index - 1];index--;}array[index] = temp;}for(int i = 0; i < len; i++) {System.out.print(array[i] + " ");}}//快速排序public static void quickSort(int array[], int low, int height) {if(low < height) {int result = partition(array, low, height);quickSort(array, low, result - 1);quickSort(array, result + 1, height);}}private static int partition(int array[], int low, int height) {int key = array[low];while(low < height) {while(low < height && array[height] >= key) {height--;}array[low] = array[height];while(low < height && array[low] <= key) {low++;}array[height] = array[low];}array[low] = key;return low;}}


---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------