黑马程序员技术交流社区

标题: java快速排序与冒泡排序 [打印本页]

作者: 如梦初醒    时间: 2012-4-17 08:52
标题: java快速排序与冒泡排序
1. 快排
package excptionTest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class mainExcption {

    /**
     * @param args
     */
    public static void main(String[] args){
      //声明数组
        int[] nums = {27, 8, 57, 9, 23, 41, 65, 19, 0, 1, 2, 4, 5};
        //应用快速排序方法
        quickSort(nums, 0, nums.length-1);
        //显示排序后的数组
        for(int i = 0; i < nums.length; ++i) {
          System.out.print(nums[i] + ",");
        }
        System.out.println("");
    }

    private static void quickSort(int[] nums, int i, int j) {
        int left = i;
        int right =j;
        int temp = 0;
        boolean r_or_l = true;
        if(left>=right){
            return;
        }
        while(left<right){
            if(nums[left]>nums[right]){
                temp = nums[left];
                nums[left] = nums[right];
                nums[right] = temp;
                r_or_l = r_or_l?false:true;
            }
            if(r_or_l){
                right--;
            } else {
                left++;
            }
        }     
        left-=1;
        right+=1;
        System.out.println(right+" "+left);

        quickSort(nums, 0, left);
        quickSort(nums, right, j);
    }
}
2. 冒泡
package excptionTest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class mainExcption {

    /**
     * @param args
     */
    public static void main(String[] args){
      //声明数组
        int[] nums = {27, 8, 57, 9, 23, 41, 65, 19, 0, 1, 2, 4, 5};         
        quickSort(nums);
        //显示排序后的数组
        for(int i = 0; i < nums.length; ++i) {
          System.out.print(nums[i] + ",");
        }
        System.out.println("");
    }

    private static void quickSort(int[] nums) {
        int temp = 0;
        boolean jump = true;
        for(int i=0;i<nums.length-1;i++){
            for(int j=i+1;j<nums.length;j++){
                if(nums[i]<nums[j]){
                    temp = nums[i];
                    nums[i] = nums[j];
                    nums[j] = temp;
                    jump = false;
                }               
            }
            if(jump){
                break;
            }
        }
    }

作者: 韩新凯    时间: 2012-4-17 12:17
肿么了?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2