zoukankan      html  css  js  c++  java
  • 12.数组三--数组的冒泡排序与快速排序

    一、冒泡排序

    package com.atguigu.java;
    /*
     * 数组的冒泡排序的实现
     * 
     */
    public class BubbleSortTest {
        public static void main(String[] args) {
            
            int[] arr = new int[]{43,32,76,-98,0,64,33,-21,32,99};
            
            //冒泡排序
            for(int i = 0;i < arr.length - 1;i++){
                
                for(int j = 0;j < arr.length - 1 - i;j++){
                    
                    if(arr[j] > arr[j + 1]){
                        int temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                    
                }
                
            }
            
            
            
            
            for(int i = 0;i < arr.length;i++){
                System.out.print(arr[i] + "	");
            }
            
        }
    }

    二、快速排序

    package com.atguigu.java;
    
    /**
     * 快速排序
     * 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,
     * 则分别对这两部分继续进行排序,直到整个序列有序。
     * @author shkstart
     * 2018-12-17
     */
    public class QuickSort {
        private static void swap(int[] data, int i, int j) {
            int temp = data[i];
            data[i] = data[j];
            data[j] = temp;
        }
    
        private static void subSort(int[] data, int start, int end) {
            if (start < end) {
                int base = data[start];
                int low = start;
                int high = end + 1;
                while (true) {
                    while (low < end && data[++low] - base <= 0)
                        ;
                    while (high > start && data[--high] - base >= 0)
                        ;
                    if (low < high) {
                        swap(data, low, high);
                    } else {
                        break;
                    }
                }
                swap(data, start, high);
                
                subSort(data, start, high - 1);//递归调用
                subSort(data, high + 1, end);
            }
        }
        public static void quickSort(int[] data){
            subSort(data,0,data.length-1);
        }
        
        
        public static void main(String[] args) {
            int[] data = { 9, -16, 30, 23, -30, -49, 25, 21, 30 };
            System.out.println("排序之前:
    " + java.util.Arrays.toString(data));
            quickSort(data);
            System.out.println("排序之后:
    " + java.util.Arrays.toString(data));
        }
    }
  • 相关阅读:
    jQuery(jquery ui,jquery plugins)插件笔记1
    怎样批量删除.svn文件
    js中传递参数为0开头的数字时候,存在转码的问题
    struts文件上传,获取文件名和文件类型
    Log4j配置
    怎样通过CSS控制input输入框有readonly属性的背景色
    EXECUTE IMMEDIATE
    row_number() over(partition by column1 order by column2 desc) rn 用法
    React概述
    Web前端,高性能优化
  • 原文地址:https://www.cnblogs.com/xingqisan/p/12114210.html
Copyright © 2011-2022 走看看