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);
            }
        }
    }
  • 相关阅读:
    B-树和B+树
    线程与内核对象的同步-2
    线程与内核对象的同步
    高级线程同步 临界区
    Levenshtein Distance (编辑距离) 算法详解
    平衡二叉树
    静态查找表
    C++中的容器类详解
    How do I list all tables/indices contained in an SQLite database
    SmartGit STUDY 2
  • 原文地址:https://www.cnblogs.com/qingyundian/p/8365617.html
Copyright © 2011-2022 走看看