最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

方法一:冒泡排序

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

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

#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進行排序

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

sort 函數(shù)默認的是進行升序排序

有兩種方法可以進行降序,可自由選擇 

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é)

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

相關文章

  • 數(shù)據(jù)結(jié)構(gòu)之數(shù)組翻轉(zhuǎn)的實現(xiàn)方法

    數(shù)據(jù)結(jié)構(gòu)之數(shù)組翻轉(zhuǎn)的實現(xiàn)方法

    這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之數(shù)組翻轉(zhuǎn)的實現(xiàn)方法的相關資料,這里用幾種實現(xiàn)方法來實現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • C++共享內(nèi)存刪除的陷阱

    C++共享內(nèi)存刪除的陷阱

    這篇文章主要介紹了C++共享內(nèi)存刪除的陷阱講解,當進程結(jié)束使用共享內(nèi)存區(qū)時,要通過函數(shù) shmdt 斷開與共享內(nèi)存區(qū)的連接。下面來看看具體問題都是怎么解決的吧
    2022-01-01
  • C++代碼實現(xiàn)鏈隊列詳解

    C++代碼實現(xiàn)鏈隊列詳解

    下面小編就為大家分享一篇C++代碼實現(xiàn)鏈隊列的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧,希望能夠給你帶來幫助
    2021-09-09
  • 使用c++實現(xiàn)OpenCV繪制圓端矩形

    使用c++實現(xiàn)OpenCV繪制圓端矩形

    這篇文章主要介紹了使用c++實現(xiàn)OpenCV繪制圓端矩形,其中著重的講解了OpenCV使用過程中需要注意的一些小細節(jié),避免浪費大家在開發(fā)過程中浪費多余的時間
    2021-08-08
  • C語言實現(xiàn)整數(shù)逆序的情況解析

    C語言實現(xiàn)整數(shù)逆序的情況解析

    今天通過本文給大家介紹C語言實現(xiàn)整數(shù)逆序的情況,本文通過實例代碼多種舉例給大家介紹的非常詳細,對C語言整數(shù)逆序相關知識感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • c++類的隱式轉(zhuǎn)換與強制轉(zhuǎn)換重載詳解

    c++類的隱式轉(zhuǎn)換與強制轉(zhuǎn)換重載詳解

    轉(zhuǎn)換函數(shù)的名稱是類型轉(zhuǎn)換的目標類型,因此,不必再為它指定返回值類型;轉(zhuǎn)換函數(shù)是被用于本類型的數(shù)值或變量轉(zhuǎn)換為其他的類型,也不必帶參數(shù)
    2013-09-09
  • C++11?關鍵字?const?使用小結(jié)

    C++11?關鍵字?const?使用小結(jié)

    const大致意思是“我承諾不改變這個值”。主要用于說明接口,這樣在把變量傳入函數(shù)時就不必擔心變量會在函數(shù)內(nèi)被改變,本文給大家介紹C++11?關鍵字?const?使用小結(jié),感興趣的朋友一起看看吧
    2021-12-12
  • C++入門之vector使用詳解

    C++入門之vector使用詳解

    這篇文章主要為大家介紹了C++入門之vector使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • C語言實現(xiàn)圖書館管理系統(tǒng)

    C語言實現(xiàn)圖書館管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)圖書館管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C語言?typedef的用法示例詳解

    C語言?typedef的用法示例詳解

    typedef是在C和C++編程語言中的一個關鍵字,作用是為現(xiàn)有的數(shù)據(jù)類型(int、float、char……)創(chuàng)建一個新的名字,目的是為了使代碼方便閱讀和理解,這篇文章主要介紹了C語言typedef的使用,需要的朋友可以參考下
    2023-06-06

最新評論

沈阳市| 阳朔县| 玉山县| 西峡县| 饶河县| 三江| 新巴尔虎右旗| 阳朔县| 砚山县| 鄯善县| 织金县| 姚安县| 修文县| 威远县| 雷山县| 文山县| 宜兰市| 云林县| 安陆市| 大英县| 昭通市| 丽水市| 怀宁县| 新建县| 两当县| 长寿区| 阿拉善左旗| 漳州市| 泽库县| 丰县| 宜宾市| 秭归县| 长白| 柘城县| 淅川县| 专栏| 阜新市| 南宁市| 赫章县| 连江县| 富平县|