国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識

這篇具有很好參考價值的文章主要介紹了【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++


目錄

?一. 前言

二. 排序的概念及運用

? ? ? ? 2.1 排序的概念

? ? ? ? 2.2 排序的運用

? ? ? ? 2.3 常見的排序算法

三.?冒泡and選擇排序

? ? ? ? 3.1 冒泡排序

????????3.2 選擇排序

四. 各大排序算法的復雜度和穩(wěn)定性

?一. 前言

? ? ? ?從本期開始,我們的數(shù)據(jù)結(jié)構(gòu)將迎來一個新的篇章:排序篇,啪嘰啪嘰【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

? ? ? ?排序是數(shù)據(jù)結(jié)構(gòu)中非常重要的內(nèi)容,在后續(xù)的內(nèi)容中,我們會對各種各樣的排序算法進行剖析和實現(xiàn),敬請期待哦【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++?

本期要點

  • 對排序進行一個整體的認識
  • 介紹一下兩種最簡單的排序
  • 籠統(tǒng)地介紹一下各大排序算法的復雜度和穩(wěn)定性

二. 排序的概念及運用

? ? ? ? 2.1 排序的概念

? ? ? ? 排序:所謂排序就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。排序算法,就是如何使得記錄按照要求排列的方法。

????????穩(wěn)定性:假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經(jīng)過排序,這些記錄的相對次序保持不變,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,則稱這種排序算法是穩(wěn)定的;否則稱為不穩(wěn)定的。

????????內(nèi)部排序:數(shù)據(jù)元素全部放在內(nèi)存中的排序。

????????外部排序:數(shù)據(jù)元素太多不能同時放在內(nèi)存中,根據(jù)排序過程的要求不能在內(nèi)外存之間移動數(shù)據(jù)的排序。

? ? ? ? 2.2 排序的運用

? ? ? ? 在日常生活中,我們可以找到許多和排序有關的場景。例如我們進入電腦磁盤右鍵就可以看到一個排序方式的選項,這是對我們電腦的磁盤文件進行排序,你可以根據(jù)需求選擇不同排序方式進行排序【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

? ? ? ? ?又或者,隨便打開一個網(wǎng)購網(wǎng)站/軟件,例如京東,我們可以看到左上角就可以對商品的某一維度進行排序【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

? ? ? ? ?再或者,世界500強榜單也是經(jīng)過排序后產(chǎn)生的【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

總之,無論是在計算機的學習上還是現(xiàn)實生活中,排序都是非常重要的主題,其運用十分廣泛,它無處不在【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

? ? ? ? 2.3 常見的排序算法

? ? ? ? ?排序算法分為比較類排序非比較類排序,如下圖所示:

【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

三.?冒泡and選擇排序

本期我們先介紹一下我們的兩個老朋友:冒泡排序選擇排序【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

? ? ? ? 3.1 冒泡排序

  • 思想 : 在一個序列中,每次對序列中的相鄰記錄的鍵值大小進行比較,將較大(升序)或較小(降序)的記錄向后移動。如此循環(huán),大/小的記錄會慢慢“”到序列的后端,整個過程就像是冒泡一樣,顧稱之為冒泡排序。
  • 冒泡過程:以下是對某個序列進行冒泡排序的過程

【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

可以看出,對于上面具有5個元素的無序數(shù)組,我們通過4趟的冒泡后就將其變?yōu)橛行驍?shù)組,每一趟冒泡后都可以使最大的數(shù)沉底。

  • ?動圖演示:我們可以通過一下動圖感受一下冒泡兩兩比較的過程:

【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

  • ?循環(huán)控制:很明顯,我們需要兩層循環(huán)來控制冒泡排序的過程。內(nèi)層循環(huán)控制當前趟的數(shù)據(jù)交換,外層循環(huán)控制冒泡排序的趟數(shù)
  • 外層循環(huán)結(jié)束條件:由于每一趟結(jié)束后都有一個數(shù)冒到序列后端,因此對于N個數(shù)的序列來說,一共需要N-1趟(只剩一個數(shù)不需要冒泡)。
    	for (int i = 0; i < n - 1; i++) //外層循環(huán),N-1趟
    	{
            ;  
    	}
  • 內(nèi)層循環(huán)結(jié)束條件:內(nèi)層循環(huán)用于數(shù)據(jù)的比較。已知N個數(shù)據(jù)共需比較N-1次,由于每一趟結(jié)束后就有數(shù)據(jù)到正確的位置,下一趟需要比較的數(shù)據(jù)個數(shù)就會少1,因此每趟的比較次數(shù)隨著趟數(shù)的增加呈遞減趨勢,初始為N-1次。
    	for (int i = 0; i < n - 1; i++) //外層循環(huán),N-1趟
    	{
    		for (int j = 0; j < n - 1 - i; j++) //內(nèi)層循環(huán),次數(shù)隨趟數(shù)增加而遞減,初始為N-1
    		{
                ;
    		}
    	}
  • 完整代碼:
    void swap(int* p1, int* p2)
    {
    	int tmp = *p1;
    	*p1 = *p2;
    	*p2 = tmp;
    }
    void BubblingSort(int* a, int n)
    {
    
    	for (int i = 0; i < n - 1; i++) //外層循環(huán),N-1趟
    	{
    		for (int j = 0; j < n - 1 - i; j++) //內(nèi)層循環(huán),次數(shù)隨趟數(shù)增加而遞減,初始為N-1
    		{
    			if (a[j] > a[j + 1]) //升序排列,較大的往后移
    			{
    				swap(&a[j], &a[j + 1]); //交換
    			}
    		}
    	}
    }
  • 改進優(yōu)化:上面的代碼還存在著改進空間,我們來看下面兩個情景:

【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

對于情境1,我們只需一趟冒泡即可讓數(shù)組有序,而如果按照上面的代碼,我們依舊要進行4趟的冒泡,即有三趟是無效的。

情境1就更夸張了,數(shù)組已經(jīng)有序,我們卻傻乎乎的做了4趟無效冒泡。無疑是非常浪費時間的。


考慮到這些情況,我們提出了優(yōu)化方案在每趟結(jié)束后判斷一下當前趟是否發(fā)生了元素交換,如果沒有,則說明序列已經(jīng)有序了,及時止損,反之繼續(xù)。優(yōu)化后的代碼如下:

void swap(int* p1, int* p2)
{
	int tmp = *p1;
	*p1 = *p2;
	*p2 = tmp;
}

void BubblingSort(int* a, int n)
{
	for (int i = 0; i < n - 1; i++) //外層循環(huán),N-1趟
	{
        int flag=0; //標識每一趟是否發(fā)生交換 0:沒有  1:有
		for (int j = 0; j < n - 1 - i; j++) //內(nèi)層循環(huán),次數(shù)隨趟數(shù)增加而遞減,初始為N-1
		{
			if (a[j] > a[j + 1]) //升序排列,較大的往后移
			{
				swap(&a[j], &a[j + 1]); //交換
                flag = 1;
			}
		}
        //判斷是否已經(jīng)有序
        if(flag == 0)
        {
            break; //有序則退出循環(huán)
        }
	}
}
  • ?時間/空間復雜度:結(jié)合上面的圖片和代碼我們可以看出,總共N-1趟,每趟N-1,N-2...次比較,共比較 (N-1) + (N-2) + (N-3) + (N-4) + (N-5) + ...... + 1次,時間復雜度為;而由于沒有額外的輔助空間,空間復雜度為。
  • 穩(wěn)定性分析:由于我們是將較大的或較小的進行交換,當兩個數(shù)相等時并不會進行交換,因而不會改變相同元素的先后次序,所以冒泡排序是穩(wěn)定的排序。

????????3.2 選擇排序

  • 思想 :?每一次從待排序的數(shù)據(jù)元素中選出最小(升序)或最大(降序)的一個元素,存放在序列的起始位置,直到全部待排序的數(shù)據(jù)元素排完。
  • 選擇過程:以下是對某個序列進行選擇排序的過程:?

【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++??動圖演示:我們一樣通過動圖感受一下選擇排序的過程:?【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

  • ?循環(huán)控制:類似的,我們需要兩層循環(huán)來控制選擇排序的過程。內(nèi)層循環(huán)遍歷序列找出最大/最小值,外層循環(huán)控制選擇的次數(shù)。
  • 外層循環(huán)結(jié)束條件:每一次遍歷完都可以選出一個數(shù)換到起始位置,一共N個數(shù),故要選N-1次(最后一個數(shù)不需要選擇)
        for (int i = 0; i < n-1; i++) //外層循環(huán),共要選擇n-1次
    	{
            ;
    	}
    
  • 內(nèi)層循環(huán)結(jié)束條件:內(nèi)層循環(huán)通過比較進行選數(shù),一開始N個數(shù)需要比較N-1次,然后每趟結(jié)束后下一次選擇的起始位置就往后移動一位,比較次數(shù)減1
        for (int i = 0; i < n-1; i++) //外層循環(huán),共選擇n-1次
    	{
    		for (int j = i + 1; j < n; j++) //內(nèi)層循環(huán),起始位置開始向后進行比較,選最小值
    		{
                ;
    		}
    	}
    
  • 完整代碼:
    void swap(int* p1, int* p2)
    {
    	int tmp = *p1;
    	*p1 = *p2;
    	*p2 = tmp;
    }
    void SelectSort(int* a, int n)
    {
    	for (int i = 0; i < n-1; i++) //外層循環(huán),共選擇n-1次
    	{
    		int mini = i; //記錄最小值的下標,初始為第一個數(shù)下標
    		for (int j = i + 1; j < n; j++) //內(nèi)層循環(huán),起始位置開始向后進行比較,選最小值
    		{
    			if (a[mini] > a[j]) //比最小值小,交換下標
    			{
    				mini = j;
    			}
    		}
    		swap(&a[mini], &a[i]); //將最小值與起始位置的數(shù)據(jù)互換
    	}
    }
  • 時間/空間復雜度:一共選了N-1次,每次選擇需要比較N-1,N-2,N-3...次,加起來和冒泡一樣時間復雜度為;沒有用到輔助空間,空間復雜度
  • 穩(wěn)定性分析:由于是選數(shù)交換,在交換的過程中很可能會打亂相同元素的順序,例如下面這個例子:【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++

? ? ? ? 我們發(fā)現(xiàn),在第一趟交換中,黑5被交換到了紅5后面,在整個排序結(jié)束后,黑5依然在紅5的后方,與最開始的順序不一致。由此我們可以得出,選擇排序是不穩(wěn)定的排序。

四. 各大排序算法的復雜度和穩(wěn)定性

廢話不多說,直接上表:

排序算法 時間復雜度(最好) 時間復雜度(平均) 時間復雜度(最壞) 空間復雜度 穩(wěn)定性

數(shù)據(jù)敏感度

比較類排序
冒泡排序 穩(wěn)定
選擇排序 不穩(wěn)定
直接插入排序 穩(wěn)定
希爾排序 不穩(wěn)定
堆排序 不穩(wěn)定
快速排序 不穩(wěn)定
歸并排序 穩(wěn)定
非比較類排序
基數(shù)排序 【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++ 穩(wěn)定
桶排序 【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++ 【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++ 穩(wěn)定
計數(shù)排序 【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++ 【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++ 【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),算法,排序算法,c語言,C++ 穩(wěn)定


以上,就是本期的全部內(nèi)容啦??

制作不易,能否點個贊再走呢??文章來源地址http://www.zghlxwxcb.cn/news/detail-586064.html

到了這里,關于【數(shù)據(jù)結(jié)構(gòu)】手撕排序NO.1----排序初識的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • [數(shù)據(jù)結(jié)構(gòu) -- 手撕排序算法第七篇] 遞歸實現(xiàn)歸并排序

    [數(shù)據(jù)結(jié)構(gòu) -- 手撕排序算法第七篇] 遞歸實現(xiàn)歸并排序

    目錄 1、歸并的思想 2、歸并排序的思想 2.1 基本思想 2.2 圖解分析 3、歸并排序遞歸版本代碼實現(xiàn) 3.1 代碼解析 3.2 注意事項 3.2.1錯誤劃分:[begin, mid-1],[mid, end] 3.2.2 正確劃分:[begin, mid], [mid+1, end] 4、歸并排序的測試 5、時間復雜度、空間復雜度分析 5.1 時間復雜度 5.2 空間復雜

    2024年02月16日
    瀏覽(37)
  • 追夢之旅【數(shù)據(jù)結(jié)構(gòu)篇】——C語言手撕八大經(jīng)典排序

    追夢之旅【數(shù)據(jù)結(jié)構(gòu)篇】——C語言手撕八大經(jīng)典排序

    ? ? ??博客昵稱:博客小夢 ??最喜歡的座右銘:全神貫注的上吧?。?! ??作者簡介:一名熱愛C/C++,算法等技術、喜愛運動、熱愛K歌、敢于追夢的小博主! ??博主小留言:哈嘍! ??各位CSDN的uu們,我是你的博客好友小夢,希望我的文章可以給您帶來一定的幫助,話不

    2024年02月17日
    瀏覽(23)
  • 數(shù)據(jù)結(jié)構(gòu)入門(C語言版)一篇文章教會你手撕八大排序

    數(shù)據(jù)結(jié)構(gòu)入門(C語言版)一篇文章教會你手撕八大排序

    排序 :所謂排序,就是使一串記錄,按照其中的某個或某些的大小,遞增或遞減的排列起來的操作。 穩(wěn)定性 :假定在待排序的記錄序列中,存在多個具有相同的的記錄,若經(jīng)過排序,這些記錄的相對次序保持不變,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而

    2024年02月01日
    瀏覽(22)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法篇】手撕八大排序算法之快排的非遞歸實現(xiàn)及遞歸版本優(yōu)化(三路劃分)

    【數(shù)據(jù)結(jié)構(gòu)與算法篇】手撕八大排序算法之快排的非遞歸實現(xiàn)及遞歸版本優(yōu)化(三路劃分)

    ???內(nèi)容專欄: 《數(shù)據(jù)結(jié)構(gòu)與算法篇》 ??本文概括: 利用數(shù)據(jù)結(jié)構(gòu)棧(Stack)來模擬遞歸,實現(xiàn)快排的非遞歸版本;遞歸版本測試OJ題時,有大量重復元素樣例不能通過,導致性能下降,優(yōu)化快速排序通過將數(shù)組劃分為三個區(qū)域,可以更有效地處理重復元素。 ??本文作者:

    2024年02月11日
    瀏覽(83)
  • [數(shù)據(jù)結(jié)構(gòu) -- 手撕排序算法第六篇] 遞歸實現(xiàn)快速排序(集霍爾版本,挖坑法,前后指針法為一篇的實現(xiàn)方法,很能打)

    [數(shù)據(jù)結(jié)構(gòu) -- 手撕排序算法第六篇] 遞歸實現(xiàn)快速排序(集霍爾版本,挖坑法,前后指針法為一篇的實現(xiàn)方法,很能打)

    目錄 1、常見的排序算法 1.1 交換排序基本思想 2、快速排序的實現(xiàn)方法 2.1 基本思想 3 hoare(霍爾)版本 3.1 實現(xiàn)思路 3.2 思路圖解 3.3 為什么實現(xiàn)思路的步驟2、3不能交換 3.4 hoare版本代碼實現(xiàn) 3.5 hoare版本代碼測試 4、挖坑法 4.1 實現(xiàn)思路 4.2 思路圖解 4.3 挖坑法代碼實現(xiàn) 4.4 挖坑

    2024年02月16日
    瀏覽(33)
  • 【數(shù)據(jù)結(jié)構(gòu)】手撕排序

    【數(shù)據(jù)結(jié)構(gòu)】手撕排序

    ?? 博客主頁 : 小羊失眠啦. ?? 系列專欄 : 《C語言》 《數(shù)據(jù)結(jié)構(gòu)》 《Linux》 《Cpolar》 ?? 感謝大家點贊??收藏?評論?? 排序 :所謂排序就是使一串記錄,按照其中的某個或某些的大小, 遞增或遞減 的排列起來的操作。排序算法,就是如何使得記錄按照要求

    2024年02月05日
    瀏覽(34)
  • [數(shù)據(jù)結(jié)構(gòu) -- 手撕排序第三篇] 冒泡排序

    [數(shù)據(jù)結(jié)構(gòu) -- 手撕排序第三篇] 冒泡排序

    目錄 1、常見的排序算法 1.1 交換排序基本思想 2、冒泡排序的實現(xiàn) 2.1 基本思想 2.2 單趟排序 2.2.1 單趟排序分析 2.2.2 單趟排序?qū)崿F(xiàn)代碼 3、冒泡排序完整代碼實現(xiàn) 3.1 思路分析 3.2 代碼實現(xiàn) 4、時間復雜度 5、優(yōu)化算法 5.1 優(yōu)化算法思路 5.2 優(yōu)化算法代碼實現(xiàn) 6、冒泡排序的特性總

    2024年02月13日
    瀏覽(20)
  • [數(shù)據(jù)結(jié)構(gòu) -- 手撕排序第一篇] 插入排序

    [數(shù)據(jù)結(jié)構(gòu) -- 手撕排序第一篇] 插入排序

    目錄 1、常見的排序算法 2、插入排序的思路 2.1 基本思想 2.2 直接插入排序 2.2.1 單趟排序的思路 2.2.2 單趟排序代碼實現(xiàn) 3、插入排序代碼 4、插入排序+打印測試 5、插入排序的時間復雜度 5.1 最壞情況 5.2 最好情況 6、直接插入排序的特性總結(jié) ? 直接插入排序是一種簡單的插入

    2024年02月12日
    瀏覽(18)
  • 數(shù)據(jù)結(jié)構(gòu)——排序算法(C語言)

    數(shù)據(jù)結(jié)構(gòu)——排序算法(C語言)

    本篇將詳細講一下以下排序算法: 直接插入排序 希爾排序 選擇排序 快速排序 歸并排序 計數(shù)排序 排序的概念 排序:所謂排序,就是使一串記錄,按照其中的某個或某寫的大小,按照遞增或遞減0排列起來的操作。 穩(wěn)定性的概念 假定在待排序的記錄序列中,存在多個

    2024年02月08日
    瀏覽(102)
  • 【數(shù)據(jù)結(jié)構(gòu)】手撕歸并排序(含非遞歸)

    【數(shù)據(jù)結(jié)構(gòu)】手撕歸并排序(含非遞歸)

    目錄 一,歸并排序(遞歸) 1,基本思想 ?2,思路實現(xiàn) 二,歸并排序(非遞歸) 1,思路實現(xiàn) 2,歸并排序的特性總結(jié): 1,基本思想 歸并排序 (MERGE-SORT) 是建立在 歸并操作 上的一種 有效的排序算法 ,該算法是采用 分治法(Divide and Conquer) 的一個非常典型的應用; 將 已

    2024年02月08日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包