• 
    

      <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
      1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>

        java排序代碼實現(xiàn),java排序算法代碼

        請用java語言編寫排序程序。

        參考代碼如下,可以按需求自己修改

        創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比南陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式南陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋南陽地區(qū)。費(fèi)用合理售后完善,10余年實體公司更值得信賴。

        import?java.util.Date;

        public?class?SortThread?{

        public?static?void?main(String[]?args)?{

        //產(chǎn)生一個隨機(jī)數(shù)組

        int[]?ary?=?getArray();

        //啟動冒泡排序線程

        new?Thread(new?MaoPao(ary)).start();

        //啟動快速排序線程

        new?Thread(new?KuaiSu(ary)).start();

        }

        private?static?int[]?getArray()?{

        //建議數(shù)字n不要超過1百萬,十萬左右就好了

        int?n?=?(int)?(Math.random()*1000000)+11;

        int[]?ary=?new?int[n];

        System.out.println("n的值是"?+?n);

        for?(int?i?=?0;?i??ary.length;?i++)?{

        ary[i]?=?(int)?(Math.random()*100000);

        }

        return?ary;

        }

        }

        //冒泡排序

        class?MaoPao?implements?Runnable?{

        int[]?ary;

        public?MaoPao(int[]?ary)?{

        this.ary?=?ary;

        }

        @Override

        public?void?run()?{

        long?st?=?System.currentTimeMillis();

        System.out.println(new?Date()?+?"冒泡排序線程:開始執(zhí)行排序");

        for?(int?i?=?0;?i??ary.length?-?1;?i++)?{

        for?(int?j?=?0;?j??ary.length?-?i?-?1;?j++)?{

        if?(ary[j]??ary[j?+?1])?{

        int?temp?=?ary[j];

        ary[j]?=?ary[j?+?1];

        ary[j?+?1]?=?temp;

        }

        }

        }

        long?et?=?System.currentTimeMillis();

        System.out.println(new?Date()?+?"冒泡排序線程完成排序,耗費(fèi)時間"?+?(et?-?st)?+?"毫秒");

        for?(int?i?=?0;?i??ary.length;?i++)?{

        System.out.println(ary[i]+"?");

        }

        }

        }

        //快速排序

        class?KuaiSu?implements?Runnable?{

        int[]?ary;

        public?KuaiSu(int[]?ary)?{

        this.ary?=?ary;

        }

        @Override

        public?void?run()?{

        long?st?=?System.currentTimeMillis();

        System.out.println(new?Date()?+?"快速排序線程:開始執(zhí)行排序");

        quickSort(ary,?1,?ary.length);

        long?et?=?System.currentTimeMillis();

        System.out.println(new?Date()?+?"快速排序線程排序完成,耗費(fèi)時間"?+?(et?-?st)?+?"毫秒");

        for?(int?i?=?0;?i??ary.length;?i++)?{

        System.out.println(ary[i]+"?");

        }

        }

        public?static?int?Partition(int?a[],?int?p,?int?r)?{

        int?x?=?a[r?-?1];

        int?i?=?p?-?1;

        int?temp;

        for?(int?j?=?p;?j?=?r?-?1;?j++)?{

        if?(a[j?-?1]?=?x)?{

        i++;

        temp?=?a[j?-?1];

        a[j?-?1]?=?a[i?-?1];

        a[i?-?1]?=?temp;

        }

        }

        temp?=?a[r?-?1];

        a[r?-?1]?=?a[i?+?1?-?1];

        a[i?+?1?-?1]?=?temp;

        return?i?+?1;

        }

        public?static?void?quickSort(int?a[],?int?p,?int?r)?{

        if?(p??r)?{

        int?q?=?Partition(a,?p,?r);

        quickSort(a,?p,?q?-?1);

        quickSort(a,?q?+?1,?r);

        }

        }

        }

        java中排序算法代碼

        package temp;

        import sun.misc.Sort;

        /**

        * @author zengjl

        * @version 1.0

        * @since 2007-08-22

        * @Des java幾種基本排序方法

        */

        /**

        * SortUtil:排序方法

        * 關(guān)于對排序方法的選擇:這告訴我們,什么時候用什么排序最好。當(dāng)人們渴望先知道排在前面的是誰時,

        * 我們用選擇排序;當(dāng)我們不斷拿到新的數(shù)并想保持已有的數(shù)始終有序時,我們用插入排序;當(dāng)給出的數(shù)

        * 列已經(jīng)比較有序,只需要小幅度的調(diào)整一下時,我們用冒泡排序。

        */

        public class SortUtil extends Sort {

        /**

        * 插入排序法

        * @param data

        * @Des 插入排序(Insertion Sort)是,每次從數(shù)列中取一個還沒有取出過的數(shù),并按照大小關(guān)系插入到已經(jīng)取出的數(shù)中使得已經(jīng)取出的數(shù)仍然有序。

        */

        public int[] insertSort(int[] data) {

        1/11頁

        int temp;

        for (int i = 1; i data.length; i++) {

        for (int j = i; (j 0) (data[j] data[j - 1]); j--) {

        swap(data, j, j - 1);

        }

        }

        return data;

        }

        /**

        * 冒泡排序法

        * @param data

        * @return

        * @Des 冒泡排序(Bubble Sort)分為若干趟進(jìn)行,每一趟排序從前往后比較每兩個相鄰的元素的大?。ㄒ虼艘惶伺判蛞容^n-1對位置相鄰的數(shù))并在

        * 每次發(fā)現(xiàn)前面的那個數(shù)比緊接它后的數(shù)大時交換位置;進(jìn)行足夠多趟直到某一趟跑完后發(fā)現(xiàn)這一趟沒有進(jìn)行任何交換操作(最壞情況下要跑n-1趟,

        * 這種情況在最小的數(shù)位于給定數(shù)列的最后面時發(fā)生)。事實上,在第一趟冒泡結(jié)束后,最后面那個數(shù)肯定是最大的了,于是第二次只需要對前面n-1

        * 個數(shù)排序,這又將把這n-1個數(shù)中最小的數(shù)放到整個數(shù)列的倒數(shù)第二個位置。這樣下去,冒泡排序第i趟結(jié)束后后面i個數(shù)都已經(jīng)到位了,第i+1趟實

        * 際上只考慮前n-i個數(shù)(需要的比較次數(shù)比前面所說的n-1要?。?。這相當(dāng)于用數(shù)學(xué)歸納法證明了冒泡排序的正確性

        java冒泡排序法代碼

        冒泡排序是比較經(jīng)典的排序算法。代碼如下:

        for(int i=1;iarr.length;i++){

        for(int j=1;jarr.length-i;j++){

        //交換位置

        } ? ?

        拓展資料:

        原理:比較兩個相鄰的元素,將值大的元素交換至右端。

        思路:依次比較相鄰的兩個數(shù),將小數(shù)放在前面,大數(shù)放在后面。即在第一趟:首先比較第1個和第2個數(shù),將小數(shù)放前,大數(shù)放后。然后比較第2個數(shù)和第3個數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個數(shù),將小數(shù)放前,大數(shù)放后。重復(fù)第一趟步驟,直至全部排序完成。

        第一趟比較完成后,最后一個數(shù)一定是數(shù)組中最大的一個數(shù),所以第二趟比較的時候最后一個數(shù)不參與比較;

        第二趟比較完成后,倒數(shù)第二個數(shù)也一定是數(shù)組中第二大的數(shù),所以第三趟比較的時候最后兩個數(shù)不參與比較;

        依次類推,每一趟比較次數(shù)-1;

        ??

        舉例說明:要排序數(shù)組:int[]?arr={6,3,8,2,9,1};?

        for(int i=1;iarr.length;i++){

        for(int j=1;jarr.length-i;j++){

        //交換位置

        } ? ?

        參考資料:冒泡排序原理

        Java幾種簡單的排序源代碼

        給你介紹4種排序方法及源碼,供參考

        1.冒泡排序

        主要思路: 從前往后依次交換兩個相鄰的元素,大的交換到后面,這樣每次大的數(shù)據(jù)就到后面,每一次遍歷,最大的數(shù)據(jù)到達(dá)最后面,時間復(fù)雜度是O(n^2)。

        public?static?void?bubbleSort(int[]?arr){

        for(int?i?=0;?i??arr.length?-?1;?i++){

        for(int?j=0;?j??arr.length-1;?j++){

        if(arr[j]??arr[j+1]){

        arr[j]?=?arr[j]^arr[j+1];

        arr[j+1]?=?arr[j]^arr[j+1];

        arr[j]?=?arr[j]^arr[j+1];

        }

        }

        }

        }

        2.選擇排序

        主要思路:每次遍歷序列,從中選取最小的元素放到最前面,n次選擇后,前面就都是最小元素的排列了,時間復(fù)雜度是O(n^2)。

        public?static?void?selectSort(int[]?arr){

        for(int?i?=?0;?i?arr.length?-1;?i++){

        for(int?j?=?i+1;?j??arr.length;?j++){

        if(arr[j]??arr[i]){

        arr[j]?=?arr[j]^arr[i];

        arr[i]?=?arr[j]^arr[i];

        arr[j]?=?arr[j]^arr[i];

        }

        }

        }

        }

        3.插入排序

        主要思路:使用了兩層嵌套循環(huán),逐個處理待排序的記錄。每個記錄與前面已經(jīng)排好序的記錄序列進(jìn)行比較,并將其插入到合適的位置,時間復(fù)雜度是O(n^2)。

        public?static?void?insertionSort(int[]?arr){

        int?j;

        for(int?p?=?1;?p??arr.length;?p++){

        int?temp?=?arr[p];???//保存要插入的數(shù)據(jù)

        //將無序中的數(shù)和前面有序的數(shù)據(jù)相比,將比它大的數(shù),向后移動

        for(j=p;?j0??temp?arr[j-1];?j--){

        arr[j]?=?arr[j-1];

        }

        //正確的位置設(shè)置成保存的數(shù)據(jù)

        arr[j]?=?temp;

        }

        }

        4.希爾排序

        主要思路:用步長分組,每個分組進(jìn)行插入排序,再慢慢減小步長,當(dāng)步長為1的時候完成一次插入排序,? 希爾排序的時間復(fù)雜度是:O(nlogn)~O(n2),平均時間復(fù)雜度大致是O(n^1.5)

        public?static?void?shellSort(int[]?arr){

        int?j?;

        for(int?gap?=?arr.length/2;?gap??0?;?gap/=2){

        for(int?i?=?gap;?i??arr.length;?i++){

        int?temp?=?arr[i];

        for(j?=?i;?j=gap??temparr[j-gap];?j-=gap){

        arr[j]?=?arr[j-gap];

        }

        arr[j]?=?temp;

        }

        }

        }

        Java編程中怎樣實現(xiàn)中文排序

        簡單的實現(xiàn)排序,可以參考如下的代碼

        import?java.text.Collator;

        import?java.util.Arrays;

        import?java.util.Comparator;

        import?java.util.Locale;

        public?class?PYDemo?{

        public?static?void?main(String[]?args)?{

        String[]?names=?{"趙z子z龍l","劉l備b","關(guān)g羽y","張z飛f"};

        System.out.println("排序前"+Arrays.toString(names));

        Comparator?cpt?=?Collator.getInstance(Locale.CHINA);?

        Arrays.sort(names,?cpt);

        System.out.println("排序后"+Arrays.toString(names));

        }

        }

        測試輸出

        排序前[趙z子z龍l,?劉l備b,?關(guān)g羽y,?張z飛f]

        排序后[關(guān)g羽y,?劉l備b,?張z飛f,?趙z子z龍l]

        如果有一些非常用的漢字,生僻字等,建議使用一些jar包實現(xiàn),比如pinyin4j

        當(dāng)前文章:java排序代碼實現(xiàn),java排序算法代碼
        網(wǎng)頁網(wǎng)址:http://www.jbt999.com/article24/phjsce.html

        成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、營銷型網(wǎng)站建設(shè)、App設(shè)計、響應(yīng)式網(wǎng)站、網(wǎng)站收錄、移動網(wǎng)站建設(shè)

        廣告

        聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

        成都定制網(wǎng)站網(wǎng)頁設(shè)計

      2. 
        

          <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
          1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>
            色婷婷国产精品高潮呻吟AV久久 | 免费黄色视频网站亚洲 | 激情AV福利 | 色婷婷青青草 | 欧美成人免费性爱 | 爱爱免费网址 | 国产精品五月天婷婷视频 | 俺来也俺去也www色官 | 三级国产网站 | 人人看人人玩人人摸 |