成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

各種sort總結(jié)

Cristalven / 1580人閱讀

摘要:各種總結(jié)如下小動畫網(wǎng)站冒泡排序原理每次遍歷一遍數(shù)組,遇到循環(huán)遍歷直至順序正確代碼快速排序原理找到一個基準,每次都將比小的放到左邊,比大的放到右邊,然后對左邊右邊分別再進行快速排序,直到分的子數(shù)組只有一個數(shù)字為止。

各種SORT總結(jié)如下:

小動畫網(wǎng)站:http://jsdo.it/norahiko/oxIy/...

冒泡排序
原理:每次遍歷一遍數(shù)組,遇到num[i + 1] < num[i],swap; 循環(huán)遍歷直至順序正確
代碼:
public void bubbleSort(int[] nums){

    while(!sorted(nums)){
        //do nothing
    }
}

boolean sorted(int[] nums){
    boolean sorted = true;
    int j = 1;
    for(int i= 0;  i < nums.length - 1; i++){
        if(nums[j] < nums[i]){
            //swap
            int temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp;
            sorted = false;
        }
        j++;
    }
    return sorted;
}

快速排序
原理:找到一個基準(pivot),divide and conquer, 每次都將比pivot小的放到左邊,比pivot大的放到右邊,然后對左邊右邊分別再進行快速排序,直到分的子數(shù)組只有一個數(shù)字為止。
(前一版代碼寫得太亂了不便理解,這里寫一個更廣為接受的)理解為“左邊右邊同時開始,遇到不符合順序的兩個就進行交換”
int partition(int arr[], int left, int right)
{

  int i = left, j = right;
  int tmp;
  int pivot = arr[(left + right) / 2];
 
  while (i <= j) {
        while (arr[i] < pivot && i <= j)
              i++;
        while (arr[j] > pivot && i <= j)
              j--;
        if (i <= j) {
              tmp = arr[i];
              arr[i] = arr[j];
              arr[j] = tmp;
              i++;
              j--;
        }
  };
 
  return i;

}

void quickSort(int arr[], int left, int right) {

  int index = partition(arr, left, right);
  if (left < index - 1)
        quickSort(arr, left, index - 1);
  if (index < right)
        quickSort(arr, index, right);

}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67065.html

相關(guān)文章

  • 各種排序算法總結(jié)

    摘要:排序算法是最基本最常用的算法,不同的排序算法在不同的場景或應(yīng)用中會有不同的表現(xiàn),我們需要對各種排序算法熟練才能將它們應(yīng)用到實際當(dāng)中,才能更好地發(fā)揮它們的優(yōu)勢。今天,來總結(jié)下各種排序算法。 排序算法是最基本最常用的算法,不同的排序算法在不同的場景或應(yīng)用中會有不同的表現(xiàn),我們需要對各種排序算法熟練才能將它們應(yīng)用到實際當(dāng)中,才能更好地發(fā)揮它們的優(yōu)勢。今天,來總結(jié)下各種排序算法。 下面這個表格...

    null1145 評論0 收藏0
  • Rxjs入門實踐-各種排序算法排序過程的可視化展示

    摘要:整個數(shù)據(jù)流序列 Rxjs入門實踐-各種排序算法排序過程的可視化展示 這幾天學(xué)習(xí)下《算法》的排序章節(jié),具體見對排序的總結(jié),想著做點東西,能將各種排序算法的排序過程使用Rxjs通過可視化的方式展示出來,正好練系一下Rxjs的使用本文不會太多介紹Rxjs的基本概念,重點介紹如何用響應(yīng)式編程的思想來實現(xiàn)功能 在線演示地址 源碼 效果圖 showImg(https://segmentfault...

    piglei 評論0 收藏0
  • Rxjs入門實踐-各種排序算法排序過程的可視化展示

    摘要:整個數(shù)據(jù)流序列 Rxjs入門實踐-各種排序算法排序過程的可視化展示 這幾天學(xué)習(xí)下《算法》的排序章節(jié),具體見對排序的總結(jié),想著做點東西,能將各種排序算法的排序過程使用Rxjs通過可視化的方式展示出來,正好練系一下Rxjs的使用本文不會太多介紹Rxjs的基本概念,重點介紹如何用響應(yīng)式編程的思想來實現(xiàn)功能 在線演示地址 源碼 效果圖 showImg(https://segmentfault...

    荊兆峰 評論0 收藏0
  • 思維導(dǎo)圖整理大廠面試高頻數(shù)組24: 合并兩個有序數(shù)組的兩種雙指針思想, 力扣88

    摘要:此專欄文章是對力扣上算法題目各種方法的總結(jié)和歸納整理出最重要的思路和知識重點并以思維導(dǎo)圖形式呈現(xiàn)當(dāng)然也會加上我對導(dǎo)圖的詳解目的是為了更方便快捷的記憶和回憶算法重點不用每次都重復(fù)看題解畢竟算法不是做了一遍就能完全記住的所 ...

    darkerXi 評論0 收藏0
  • 細說JS數(shù)組

    摘要:數(shù)組元素的讀寫使用訪問數(shù)組元素時,將索引轉(zhuǎn)換為字符串,然后將其作為屬性名一樣使用。第一個參數(shù)應(yīng)該在前只展開一層數(shù)組元素不變,返回注意,只拼接第一層結(jié)構(gòu)。 此乃犀牛書(第七章 數(shù)組)讀書筆記,又結(jié)合了ES6中數(shù)組的擴展部分做的知識梳理。精華部分就是手工繪制的兩張數(shù)組總結(jié)圖了。靈活運用數(shù)組的各種方法是基本功,是基本功,是基本功,重要的事情說三遍。好了,正文從下面開始~ 數(shù)組的基本概念 什么...

    starsfun 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<