基本排序:選擇,插入,冒泡

本文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處,謝謝你……

喜歡java并發(fā)編程的請(qǐng)加群:736156823
開始-->

1)選擇:

直接上代碼:

    // left,right均為數(shù)組下標(biāo)
    public void selection(int as[], int left, int right) {
        if (null == as) {
            return;
        } else if (left < 0 || right < 0) {
            return;
        } else {
            int size = as.length;
            if (size <= 0) {
                return;
            } else if (right - left <= 0) {
                return;
            } else {
                int i, j;
                for (i = left; i < right; i++) {
                    int min = i;
                    for (j = i + i; j <= right; j++) {
                        if (as[j] < as[min]) {
                            min = j;
                        }
                    }
                    swap(as, i, min);
                }
            }
        }
    }

    // left,right均為數(shù)組下標(biāo)
    public void selectionV2(int as[], int left, int right) {
        if (null == as) {
            return;
        } else if (left < 0 || right < 0) {
            return;
        } else {
            int size = as.length;
            if (size <= 0) {
                return;
            } else if (right - left <= 0) {
                return;
            } else {
                for (int i = left; i < right; i++) {
                    int min = i;
                    for (int j = i + 1; j <= right; j++) {
                        if (as[j] < as[min]) {
                            min = j;
                        }
                    }
                    swap(as, i, min);
                }
            }
        }
    }

2)插入:

public void insertion(int[] a, int left, int right) {
        for (int p = left + 1; p <= right; p++) {
            int tmp = a[p], j;
            for (j = p; j > left && tmp < a[j - 1]; j--) {
                a[j] = a[j - 1];
            }
            a[j] = tmp;
        }
    }

    public void insertionV2(int[] as, int left, int right) {
        if (null == as) {
            return;
        } else if (left < 0 || right < 0) {
            return;
        } else {
            int size = as.length;
            if (size <= 0) {
                return;
            } else if (right - left <= 0) {
                return;
            } else {
                int i;
                for (i = right; i > left; i--) {
                    compare(as, i - 1, i);
                }
                for (i = left + 2; i <= right; i++) {
                    int j = i;
                    int v = as[i];
                    while (v < as[j - 1]) {
                        as[j] = as[j - 1];
                        j--;
                    }
                    as[j] = v;
                }
            }
        }
    }

    private void compare(int[] as, int a, int b) {
        if (as[a] > as[b]) {
            swap(as, a, b);
        }
    }

3)冒泡:

// 兩種個(gè)冒泡的實(shí)現(xiàn)其中一種
    public void bubble(int[] as, int b, int e) {
        if (b < 0 || e < 0) {
            return;
        }
        int length = e - b;
        if (null == as) {
            return;
        } else if (length <= 0) {
            return;
        } else if (as.length <= 0) {
            return;
        } else {
            for (int j = b; j < e; j++) {
                for (int i = e; i > j; i--) {
                    compare(as, i, i - 1);
                }
            }
        }
    }

    // 兩種個(gè)冒泡的實(shí)現(xiàn)其中一種
    public void bubbleV2(int[] as, int b, int e) {
        if (b < 0 || e < 0) {
            return;
        }
        int length = e - b;
        if (null == as) {
            return;
        } else if (length <= 0) {
            return;
        } else if (as.length <= 0) {
            return;
        } else {
            for (int j = b; j <= e; j++) {
                for (int i = e; ; i--) {
                    int t = i - 1;
                    if (t >= j) {
                        compare(as, i, t);
                    } else {
                        break;
                    }
                }
            }
        }
    }

    private void compare(int[] as, int a, int b) {
        if (as[a] > as[b]) {
            swap(as, a, b);
        }
    }

喜歡java并發(fā)編程的請(qǐng)加群:736156823

后續(xù)添加代碼注釋,暫時(shí)先這樣……要吃飯了。
有問題歡迎指正,這是新鮮出爐的,還未修飾
結(jié)束-->
本文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處,謝謝你……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,008評(píng)論 25 709
  • 上一篇:【Yore Cafe】黑咖啡-失落沙洲 一陣清脆的鈴鐺響起,我喜歡掛在木門上的鈴鐺,當(dāng)有客人進(jìn)來時(shí),就能第...
    庭楓閱讀 342評(píng)論 0 2
  • 原創(chuàng)圖片,轉(zhuǎn)載請(qǐng)注明出處,謝謝!
    quentin2012閱讀 239評(píng)論 0 0
  • Chateau Pétrus柏圖斯酒莊的名字和記錄第一次出于1837年,莊園位處法國(guó)波爾多Bordeaux五大產(chǎn)區(qū)...
    wztwzt6999gmail閱讀 621評(píng)論 0 0
  • 我們認(rèn)識(shí)不到一年,卻活成了知已的模樣,我們懂彼此的每一個(gè)動(dòng)作,眼神,微笑,雖然自己不夠完美,卻相處得很舒服,我想,...
    Queenhh閱讀 456評(píng)論 2 2

友情鏈接更多精彩內(nèi)容