5 回答

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

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

TA貢獻1836條經驗 獲得超13個贊
#include <algorithm>
#include <iostream>
using namespace std;
main()
{
int a[11]={2,4,8,5,7,1,10,6,9,3};//a的長度=待排數據個數+1
sort(a,a+10);//對[a,a+10)排序
for(int i=0;i<10;++i) cout<<a[i]<<endl;
}
- 5 回答
- 0 關注
- 3211 瀏覽
添加回答
舉報