欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c++數(shù)組排序的5種方法實例代碼

 更新時間:2023年01月11日 14:13:42   作者:布魯擼代碼  
大家還在為大小排序而煩惱嗎?今天讓我我大家解決這個問題吧,下面這篇文章主要給大家介紹了關(guān)于c++數(shù)組排序的5種方法,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

方法一:冒泡排序

  1. 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
  2. 對每一對相鄰元素做同樣的工作,執(zhí)行完畢后,找到第一個最大值。
  3. 重復(fù)以上的步驟,每次比較次數(shù)-1,直到不需要比較

示例:對數(shù)組4,2,8,0,5,7,1,3,9 進(jìn)行排序

#include<iostream>
 
using namespace std;
 
int main() {
 
	int arr[9] = { 4,2,8,0,5,7,1,3,9 };
 
	for (int i = 0; i < 9 - 1; i++)
	{
		for (int j = 0; j < 9 - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
 
	for (int i = 0; i < 9; i++)
	{
		cout << arr[i] << endl;
	}
    
	system("pause");
 
	return 0;
}

方法二:sort函數(shù)排序

示例:對數(shù)組2,4,5,3,1進(jìn)行排序

sort函數(shù)的算法效率相當(dāng)于快排。

sort 函數(shù)默認(rèn)的是進(jìn)行升序排序

有兩種方法可以進(jìn)行降序,可自由選擇 

1. 使用greater<int>()

如果排序其他類型可更改參數(shù)

2. 自定義一個比較大小的函數(shù),將大的排在前面

方法三:用交換函數(shù)swap排序

… …

if(a>b) swap(a,b);

if(a>c) swap(a,c);

if(b>c) swap(b,c);

… …

方法四:快速排序

  • 找到分界點x,q[L],q[(L+R)/2],q[R]
  • 左邊所有數(shù)Left<=x,右邊所有數(shù)Right>=x
  • 遞歸排序Left,遞歸排序Right 

快速排序算法模板:

void quick_sort(int q[], int l, int r)
{
    if (l >= r) return;
    
    int i = l - 1, j = r + 1, x = q[l+r>>1]; //l+r>>1的意思是l+r的值除以2取整
    while (i < j)
    {
        do i ++ ; while (q[i] < x);
        do j -- ; while (q[j] > x);
        if (i < j) swap(q[i], q[j]);
        else break;
    }
    quick_sort(q, l, j), quick_sort(q, j + 1, r);
}

方法五:歸并排序

  • 確定分界點:mid=(l+r)/2
  • 遞歸排序Left,遞歸排序Right
  • 歸并 —— 合二為一  

歸并排序算法模板

void merge_sort(int q[], int l, int r)
{
    if (l >= r) return;
    
    int mid = l + r >> 1;
    merge_sort(q, l, mid);
    merge_sort(q, mid + 1, r);
    
    int k = 0, i = l, j = mid + 1;
    while (i <= mid && j <= r)
        if (q[i] < q[j]) tmp[k ++ ] = q[i ++ ];
        else tmp[k ++ ] = q[j ++ ];
    
    while (i <= mid) tmp[k ++ ] = q[i ++ ];
    while (j <= r) tmp[k ++ ] = q[j ++ ];
    
    for (i = l, j = 0; i <= r; i ++, j ++ ) q[i] = tmp[j];
}

總結(jié)

到此這篇關(guān)于c++數(shù)組排序的5種方法的文章就介紹到這了,更多相關(guān)c++數(shù)組排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • OpenGL畫bezier曲線

    OpenGL畫bezier曲線

    這篇文章主要為大家詳細(xì)介紹了OpenGL畫bezier曲線,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • MFC創(chuàng)建模態(tài)對話框和非模態(tài)對話框的方法

    MFC創(chuàng)建模態(tài)對話框和非模態(tài)對話框的方法

    這篇文章主要介紹了MFC創(chuàng)建模態(tài)對話框和非模態(tài)對話框的方法,需要的朋友可以參考下
    2014-07-07
  • C語言結(jié)構(gòu)體超詳細(xì)講解

    C語言結(jié)構(gòu)體超詳細(xì)講解

    C語言結(jié)構(gòu)體(Struct)從本質(zhì)上講是一種自定義的數(shù)據(jù)類型,只不過這種數(shù)據(jù)類型比較復(fù)雜,是由?int、char、float?等基本類型組成的。你可以認(rèn)為結(jié)構(gòu)體是一種聚合類型
    2022-04-04
  • C語言?柔性數(shù)組的使用詳解

    C語言?柔性數(shù)組的使用詳解

    柔性數(shù)組(Flexible?Array)是引入的一個新特性,它允許你在定義結(jié)構(gòu)體時創(chuàng)建一個空數(shù)組,而這個數(shù)組的大小可以在程序運行的過程中根據(jù)你的需求進(jìn)行更改特別注意的一點是:這個空數(shù)組必須聲明為結(jié)構(gòu)體的最后一個成員,并且還要求這樣的結(jié)構(gòu)體至少包含一個其他類型的成員
    2022-03-03
  • 字符串的模式匹配詳解--BF算法與KMP算法

    字符串的模式匹配詳解--BF算法與KMP算法

    這篇文章記錄一下串里面的模式匹配,模式匹配,顧名思義就是給定一個被匹配的字符串,然后用一個字符串模式(模型)去匹配上面說的字符串,看后者是否在前者里面出現(xiàn)。常用的有2種算法可以實現(xiàn),下面我們來具體探討下
    2014-08-08
  • C++編寫DLL動態(tài)鏈接庫的步驟與實現(xiàn)方法

    C++編寫DLL動態(tài)鏈接庫的步驟與實現(xiàn)方法

    這篇文章主要介紹了C++編寫DLL動態(tài)鏈接庫的步驟與實現(xiàn)方法,結(jié)合實例形式分析了C++導(dǎo)出類文件及生成與調(diào)用DLL動態(tài)連接庫的相關(guān)操作技巧,需要的朋友可以參考下
    2016-08-08
  • C++實現(xiàn)優(yōu)酷土豆去視頻廣告的方法

    C++實現(xiàn)優(yōu)酷土豆去視頻廣告的方法

    這篇文章主要介紹了C++實現(xiàn)優(yōu)酷土豆去視頻廣告的方法,實例分析了C++實現(xiàn)屏蔽功能的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • VSCode配置C/C++并添加非工作區(qū)頭文件的方法

    VSCode配置C/C++并添加非工作區(qū)頭文件的方法

    這篇文章主要介紹了VSCode配置C/C++并添加非工作區(qū)頭文件的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • 基于C++詳解數(shù)據(jù)結(jié)構(gòu)(附帶例題)

    基于C++詳解數(shù)據(jù)結(jié)構(gòu)(附帶例題)

    數(shù)據(jù)結(jié)構(gòu)作為每一個IT人不可回避的問題,本文基于C++編寫,下面這篇文章主要給大家介紹了關(guān)于數(shù)據(jù)結(jié)構(gòu)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • C++基于EasyX庫實現(xiàn)拼圖小游戲

    C++基于EasyX庫實現(xiàn)拼圖小游戲

    這篇文章主要為大家詳細(xì)介紹了C++基于EasyX庫實現(xiàn)拼圖小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評論