两种排序算法,java

来源:互联网 发布:rom软件下载 编辑:程序博客网 时间:2024/06/05 21:11
public class Main{public static void main(String[] args){int[] array = {2,3,5,1,1,36,5};array = QuickSort(array,0, array.length-1);for(int i=0; i<array.length; i++){System.out.println(array[i]);}}static int[] BubbleSort(int[] array, int n){for(int i=0; i<n-1; i++){for(int j=0; j<n-1-i; j++){if(array[j]>array[j+1]){int temp = array[j];array[j] = array[j+1];array[j+1] = temp;}}}return array;}//这种算法,刚开始会埋没“标杆元素”(被程序刚刚运行时找到的后面的一个小元素埋没(替换)),接下来//从后面放到前面的那个元素,又会被前面找到的大元素替换,,就这样一直替换,一直都只会有 “标杆元素”//被替换掉,在最后一步,再把它找回来就行static int[] QuickSort(int[] array, int left, int right){if(left < right){int i=left;int j=right;//每次的标杆元素都选取 left 这个位置的int x=array[i];while(i<j){//从后面找到第一个小元素,放在前面while(i<j && array[j]>x){j--;}if(i<j){array[i]=array[j];i++;}//从前面找到第一个大元素,放在后面while(i<j && array[i]<x){i++;}if(i<j){array[j]=array[i];j--;}}array[i]=x;QuickSort(array, left,i-1);QuickSort(array, i+1,right);}return array;}}

原创粉丝点击