⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sortthread.java

📁 java对文件进行操作的例子
💻 JAVA
字号:
//本程序实现单词的排序工作import java.io.*;public class SortThread extends Thread {    private PrintWriter out = null;    private BufferedReader in = null;    public SortThread(PrintWriter out, BufferedReader in) {        this.out = out;        this.in = in;    }    public void run() {        //定义一个常量符号,便于以后修改它的值        int MAXWORDS = 50;	//用一个字符串数组接收in中的内容,排序后输出        if (out != null && in != null) {            try {                String[] listOfWords = new String[MAXWORDS];                int numwords = 0;                 while ((listOfWords[numwords] = in.readLine()) != null)                    numwords++;                //实现排序                    quicksort(listOfWords, 0, numwords-1);                for (int i = 0; i < numwords; i++)                    out.println(listOfWords[i]);                out.close();            } catch (IOException e) {                System.err.println("SortThread run: " + e);            }        }    }//这是一个快排序方法,它的思路是先设一个中间点,然后再通过左右对调//把值小于中间点的元素放到中间点的左边,值大于中间点的元素放到右边//然后对左右两部分重复以上算法,直到完成排序,所以这是一个递归算法。    private static void quicksort(String[] a, int lo0, int hi0) {        int lo = lo0;        int hi = hi0;        if (lo >= hi)            return;        String mid = a[(lo + hi) / 2];        while (lo < hi) {            while (lo<hi && a[lo].compareTo(mid) < 0)                lo++;            while (lo<hi && a[hi].compareTo(mid) > 0)                hi--;            if (lo < hi) {                String T = a[lo];                a[lo] = a[hi];                a[hi] = T;                lo++;                hi--;            }        }        if (hi < lo) {            int T = hi;            hi = lo;            lo = T;        }        quicksort(a, lo0, lo);        quicksort(a, lo == lo0 ? lo+1 : lo, hi0);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -