5 回答

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
sort(),qsort()排序函數(shù)
一.sort函數(shù)
常用于C++中,頭文件為algorithm.h。
用法:
sort(first,last)
在[first, last)中的元素進(jìn)行排序按升序排列
注意:sort默認(rèn)排序后是升序。如果要想按降序排列,需自己編寫一個(gè)比較函數(shù)來(lái)實(shí)現(xiàn)。
函數(shù)名...................功能描述
sort........................對(duì)給定區(qū)間所有元素進(jìn)行排序
stable_sort.........對(duì)給定區(qū)間所有元素進(jìn)行穩(wěn)定排序
partial_sort........對(duì)給定區(qū)間所有元素部分排序
partial_sort_copy..........對(duì)給定區(qū)間復(fù)制并排序
nth_element...................找出給定區(qū)間的某個(gè)位置對(duì)應(yīng)的元素
is_sorted...........................判斷一個(gè)區(qū)間是否已經(jīng)排好序
partition...........................使得符合某個(gè)條件的元素放在前面
stable_partition............相對(duì)穩(wěn)定的使得符合某個(gè)條件的元素放在前面
二、qsort()函數(shù)
功 能: 使用快速排序例程進(jìn)行排序
頭文件:stdlib.h
用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
參數(shù): 1 待排序數(shù)組首地址
2 數(shù)組中待排序元素?cái)?shù)量
3 各元素的占用空間大小
4 指向函數(shù)的指針,用于確定排序的順序

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
在stdlib.h頭文件中。
有qsort() //快速排序
qsort函數(shù),也就是快速排序算法,在C的<stdlib>庫(kù)中,需加入頭文件#include <cstdlib> 或#include <stdlib.h>。
調(diào)用qsort函數(shù)需要寫cmp比較函數(shù)。
給出按升序排列的例子:
int cmp(const void* a, const void* b) //注意這里是int{return (int*)a - (int*)b;}
調(diào)用:
qsort(a, n, sizeof(int), cmp);//a為數(shù)組,n為個(gè)數(shù)
如果需要按照自己的意愿排列,那么同樣重寫cmp比較函數(shù),就可以完成,和sort函數(shù)類似。時(shí)間復(fù)雜度為O(n log n),但是某些情況要比sort函數(shù)好。

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
#include <algorithm>
#include <iostream>
using namespace std;
main()
{
int a[11]={2,4,8,5,7,1,10,6,9,3};//a的長(zhǎng)度=待排數(shù)據(jù)個(gè)數(shù)+1
sort(a,a+10);//對(duì)[a,a+10)排序
for(int i=0;i<10;++i) cout<<a[i]<<endl;
}
- 5 回答
- 0 關(guān)注
- 3608 瀏覽
添加回答
舉報(bào)