首页 > 代码库 > 数据结构排序算法Java实现

数据结构排序算法Java实现

闲的无聊又拿起了大学的数据结构的书看起来 《数据结构(c语言版)》严蔚敏 吴伟民编著。

里面有几个排序算法,感觉挺好玩的,就想着写出来玩玩。

package test.sort;/** * @Title: TODO   * @Description: TODO   * @author:  * @date: 2014-8-10 上午11:20:43   *   */public class quickSort {		private static int datas[] = {23,42,12,45,56,63,24,41,32};	/**  	 * @Title: main  	 * @Description: TODO	 * @param @param args   	 * @return void    返回类型  	 * @author 	 * @time 2014-8-10 上午11:20:43	 * @throws  	 */	public static void main(String[] args) {//		bubbleSort();//		quickSort(datas, 0, datas.length-1);//		selectSort(datas);		heapSort(datas);		for(int data : datas) {			System.out.print(data + "  ");		}	}	//冒泡排序	public static void bubbleSort() {		for(int i = 0; i < datas.length-1; i++) {			for(int j = i+1; j < datas.length; j++) {				int num = 0;				if(datas[i] > datas[j]) {					num = datas[i];					datas[i] = datas[j];					datas[j] = num;				}			}		}	}		public static int partition(int datas[] , int low , int high) {		int pivotkey = datas[low];		while (low < high ) {			while(low < high && datas[high] >= pivotkey) 				high--;			datas[low] = datas[high];			while (low < high && datas[low] <= pivotkey) {				low++;			}			datas[high] = datas[low];		}		datas[low] = pivotkey;		return low;	}		//快速排序算法	public static void quickSort(int datas[] , int low , int high) {		if(low < high) {			int pivotloc = partition(datas, low, high);			quickSort(datas, low, pivotloc-1);			quickSort(datas, pivotloc+1, high);		}	}		//选择排序	public static void selectSort(int datas[]) {		for(int i = 0; i < datas.length -1; i++) {			int j = selectMinKey(datas,i);			if(i != j) {				int num = datas[i];				datas[i] = datas[j];				datas[j] = num;			}		}	}	
     //找出数组中最小的值所在的位置 public static int selectMinKey(int datas[],int i) { int minIndex = i; int minData = http://www.mamicode.com/datas[i];>