zoukankan      html  css  js  c++  java
  • java算法面试题:排序都有哪几种方法?请列举。用JAVA实现一个快速排序。选择冒泡快速集合至少4种方法排序

    package com.swift;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    
    public class QuickSort {
        /*
         * 快速排序
         */
        
        public static void main(String[] args) {
            String[] strVoid = new String[] {"11", "66", "22", "0", "55", "22", "0", "32"};
            QuickSort sort = new QuickSort();
            sort.quickSort(strVoid, 0, strVoid.length - 1);
            for (int i = 0; i < strVoid.length; i++) {
                System.out.println(strVoid[i] + " ");
            }
            //用比较器排序
            List<String> list=new ArrayList<String>();
            for(String str:strVoid) {
                list.add(str);
            }
            Collections.sort(list,new Comparator<String>() {
    
                @Override
                public int compare(String arg0, String arg1) {
                    int num=arg1.compareTo(arg0);
                    return num;
                }
                
            });
            for(String str:list) {
                System.out.print(str+" | ");
            }
        }
        
        public void quickSort(String[] strDate, int left, int right) {
            String middle, tempDate;
            int i, j;
            i = left;
            j = right;
            middle = strDate[(i + j) / 2];
            do {
                while (strDate[i].compareTo(middle) < 0 && i < right)
                    i++; // 找出左边比中间值大的数
                while (strDate[j].compareTo(middle) > 0 && j > left)
                    j--; // 找出右边比中间值小的数
                if (i <= j) { // 将左边大的数和右边小的数进行替换
                    tempDate = strDate[i];
                    strDate[i] = strDate[j];
                    strDate[j] = tempDate;
                    i++;
                    j--;
                }
            } while (i <= j); // 当两者交错时停止
    
            if (i < right) {
                quickSort(strDate, i, right);//
            }
            if (j > left) {
                quickSort(strDate, left, j);
            }
        }
    }
  • 相关阅读:
    Direct UI 思想阐述(好多相关文章)
    GetSystemTimeAsFileTime讲解(从1601年1月1日到目前经过的纳秒)
    WPF的消息机制
    CEdit 样式与消息 解析
    vcredist_x86.exe 静默安装方法
    iOS 开发问题集锦(一)
    EM算法详解
    BCP导入导出MsSql
    为什么不能在子类或外部发布C#事件
    HTML5 拖放及排序的简单实现
  • 原文地址:https://www.cnblogs.com/qingyundian/p/8365617.html
Copyright © 2011-2022 走看看