`

库函数之sort

阅读更多

库函数之sort:

// 语法:   
#include <algorithm>  
void sort(iterator start,iterator end);  
void sort(iterator start,iterator end,StritWeakOrdering cmp);  
 
/*  
    1,sort()算法将在区间 [start,end)中的元素升序排列。 
    2,如果两个元素相等,不能保证其维持原来顺序。 
    3,默认使用<操作符,如果定义比较函数cmp,则使用cmp。 
    4,sort()算法内部是introsort(内观排序,自省的快排)算法 
    5,时间复杂度O(N*log(N)) (平均和最坏) 
      
    例子:(降序排列)  
    bool cmp( int a, int b )  
    { 
        return a > b; 
    }    
    sort( v.begin(), v.end(), cmp ); 
     
    附:introsort原理 
    (1)三点中值法。取中间大小的为PIVOT;  
    (2)分割函数,使用中间左右两部分:L< M < R, 返回M;  
    (3)左部分递归调用,右部分在循环中处理;  
    (4)若分割层次大于2*K( K <= lg2N),则调用heapsort,防止退化为N2..;  
    (5)若当前进入的子序列长度< 16,则退出;(宗旨是调用QUITSORT使之基本有序)  
    (6)当整个序列基本有序后,直接调用简单插入排序。 
*/   
 
// 附:stable_sort partial_sort nth_element() merges()  
// 语法:  
#include <algorithm>  
void stable_sort( iterator start, iterator end );  
void stable_sort( iterator start, iterator end, StrictWeakOrdering cmp );   
/*   
    1,升序排列。 
    2,稳定排序。其代价是增加了时间复杂度,最坏情况下为O(N*(log(N))^2)。  
*/ 
 
 
#include <algorithm>  
void partial_sort( iterator start, iterator middle, iterator end );  
void partial_sort( iterator start, iterator middle, iterator end, StrictWeakOrdering cmp );  
/* 
    1,将区间[start,end)中的前N个元素升序排列;  
    2,N由start与middle确定。 
*/   
 
#include <algorithm>  
void nth_element( iterator start, iterator middle, iterator end );  
void nth_element( iterator start, iterator middle, iterator end, StrictWeakOrdering cmp );  
 
#include <algorithm>  
iterator merge( iterator start1, iterator end1, iterator start2, iterator end2, iterator result );  
iterator merge( iterator start1, iterator end1, iterator start2, iterator end2, iterator result, StrictWeakOrdering cmp ); 
// 语法:
#include <algorithm>
void sort(iterator start,iterator end);
void sort(iterator start,iterator end,StritWeakOrdering cmp);

/*
 1,sort()算法将在区间 [start,end)中的元素升序排列。
 2,如果两个元素相等,不能保证其维持原来顺序。
 3,默认使用<操作符,如果定义比较函数cmp,则使用cmp。
 4,sort()算法内部是introsort(内观排序,自省的快排)算法
 5,时间复杂度O(N*log(N)) (平均和最坏)
 
   例子:(降序排列)
 bool cmp( int a, int b )
 {
    return a > b;
  }  
  sort( v.begin(), v.end(), cmp );
  
 附:introsort原理
 (1)三点中值法。取中间大小的为PIVOT;
 (2)分割函数,使用中间左右两部分:L< M < R, 返回M;
 (3)左部分递归调用,右部分在循环中处理;
 (4)若分割层次大于2*K( K <= lg2N),则调用heapsort,防止退化为N2..;
 (5)若当前进入的子序列长度< 16,则退出;(宗旨是调用QUITSORT使之基本有序)
 (6)当整个序列基本有序后,直接调用简单插入排序。
*/

// 附:stable_sort partial_sort nth_element() merges()
// 语法:
#include <algorithm>
void stable_sort( iterator start, iterator end );
void stable_sort( iterator start, iterator end, StrictWeakOrdering cmp );
/* 
 1,升序排列。
 2,稳定排序。其代价是增加了时间复杂度,最坏情况下为O(N*(log(N))^2)。
*/


#include <algorithm>
void partial_sort( iterator start, iterator middle, iterator end );
void partial_sort( iterator start, iterator middle, iterator end, StrictWeakOrdering cmp );
/*
 1,将区间[start,end)中的前N个元素升序排列;
 2,N由start与middle确定。
*/

#include <algorithm>
void nth_element( iterator start, iterator middle, iterator end );
void nth_element( iterator start, iterator middle, iterator end, StrictWeakOrdering cmp );

#include <algorithm>
iterator merge( iterator start1, iterator end1, iterator start2, iterator end2, iterator result );
iterator merge( iterator start1, iterator end1, iterator start2, iterator end2, iterator result, StrictWeakOrdering cmp );

 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ahcaigen/archive/2010/02/27/5332627.aspx

分享到:
评论

相关推荐

    C++ 库函数 sort 详解

    在C++编程语言中,`std::sort`是一个非常重要的库函数,用于对给定的元素序列进行排序。它属于`&lt;algorithm&gt;`头文件,可以对任何可迭代的容器(如数组、向量等)进行排序。本教程主要针对C++初学者,讲解如何使用`...

    c语言 C++中库函数

    - `algorithm`:包含了一系列通用的算法,如排序(`sort()`)、查找(`find()`)、交换(`swap()`)等。 - `vector`:模板类,提供了动态数组的功能,可以方便地添加、删除元素。 3. **C++特有的库函数** C++...

    c和c++库函数快速查询资料

    `algorithm`库包含了丰富的算法,如排序(`sort`)、查找(`find`)等;`fstream`库用于文件操作,如读写文件。 在学习C和C++库函数时,查阅资料是必不可少的。文档如"C语言资料大全1.0.chm"和"C语言标准库函数大全...

    C++和C语言库函数速查手册

    C++标准库中包含了许多容器(如`std::vector`、`std::list`)、迭代器、算法(如`std::sort`排序、`std::find`查找)以及智能指针等。`iostream`库是C++输入/输出系统的核心,包含了`std::cin`、`std::cout`等对象,...

    vc库函数查询小软件

    `std::sort`函数用于对序列进行排序;`std::ifstream`和`std::ofstream`则分别用于文件输入和输出。 MFC是微软提供的一个面向对象的C++类库,主要用于构建Windows应用程序。它封装了Windows API,简化了窗口、...

    c++ 库函数(全)

    C++库函数包括许多模块,如输入/输出流(`&lt;iostream&gt;`)、容器(如`std::vector`、`std::map`)、算法(如`std::sort`、`std::find`)、字符串处理(`&lt;string&gt;`)、异常处理(`&lt;exception&gt;`)等。每个模块都包含了...

    STL库函数的一些整理

    查找算法是STL中最常用的一类算法之一,主要包括以下13种: 1. **`adjacent_find`**:查找相邻的重复元素对,并返回指向这对元素的第一个元素的迭代器。如果未找到,则返回结束迭代器。 - 重载版本允许用户指定...

    C++库函数及STL算法

    例如,`std::sort`可以对容器内的元素进行排序,`std::find`可以查找特定值的位置,`std::for_each`可以对容器中的每个元素应用一个函数或函数对象。这些算法的使用通常结合迭代器来指定操作范围,使得代码简洁且...

    STL标准库函数(形式及用法)

    * 排序算法(sort、stable_sort等) * 搜索算法(find、search等) * 遍历算法(for_each、transform等) * 合并算法(merge、set_union等) 这些算法提供了高效的数据处理机制,使得程序员可以快速开发高效的程序...

    c_c++库函数帮助手册

    C++语言则在C的基础上增加了面向对象的特性,并引入了自己的库,如STL(Standard Template Library),包括容器(如vector、list、map)、算法(如sort、find)、迭代器等。STL的使用极大地提高了代码的可读性和复用...

    C++库函数(中文)

    4. **算法**:`&lt;algorithm&gt;`头文件提供了大量通用算法,如排序(`std::sort`)、搜索(`std::find`)、复制(`std::copy`)和变换(`std::transform`)等,这些都是编写高效代码的重要工具。 5. **智能指针**:在...

    标准C/C++库函数手册

    《标准C/C++库函数手册》是一本涵盖了C和C++编程语言中核心库函数的详尽指南。这本书深入解析了这两个编程语言的基础和高级功能,帮助开发者更好地理解和利用标准库来提高代码效率和可读性。以下是其中涵盖的一些...

    C/C++库函数以及文件大全(经典)

    在C/C++编程中,库函数和标准模板库(Standard Template Library, STL)是开发者不可或缺的工具。这些库提供了丰富的功能,使得程序员可以更高效、更便捷地编写代码。本资源"库函数以及文件大全(经典).chm"很可能...

    C C++ 库函数 C语言 C++语言 编程 初学者

    `std::sort`函数可以对任何可比较的元素序列进行排序;`std::map`则提供关联容器,以键值对的形式存储数据。 在学习C和C++库函数时,初学者需要关注以下几个关键点: 1. **类型转换**:C++中的`static_cast`、`...

    C\C++库函数大全

    它们的库函数是其强大功能的重要组成部分,为程序员提供了丰富的工具来处理各种任务。本文将深入探讨C和C++的标准库函数,帮助读者更好地理解和运用这些库。 C语言库函数主要集中在ANSI/ISO C标准库中,也称为C运行...

    C/C++库函数中文说明

    此外,C++标准库还包含了大量的算法,如`sort`、`find`、`count`等,这些都是C++程序员日常开发中不可或缺的工具。 资料中可能未涵盖MFC(Microsoft Foundation Classes),这是一个由微软提供的C++类库,主要用于...

    超经典 C/C++ 库函数

    C++标准模板库(STL)中的`vector`、`list`、`map`等容器,以及`algorithm`库中的`sort`、`find`等算法,极大地提高了代码的可读性和效率。 8. **异常处理**: C++支持异常处理,通过`try`、`catch`和`throw`...

    Visual C++经典(库函数).rar

    7. **算法库**:C++的algorithm库包含了一系列通用的算法,如排序(sort)、查找(find)、拷贝(copy)等,这些算法都具有良好的效率和泛化能力。 8. **字符串处理库**:string类提供了对字符串的操作,如拼接、...

    数据结构中的库函数--------------------

    例如,C++的`std::sort`用于对容器中的元素进行排序,而`std::binary_search`可以在已排序的容器中查找指定元素。Python的`sorted`函数可以对任何可迭代对象进行排序,`bisect`模块提供了二分查找功能。 在图形数据...

    c++库函数大全.rar

    - `sort`:对容器内的元素进行排序。 - `find`:在容器中查找指定元素。 - `count`:计算容器中特定元素的个数。 - `transform`:对容器中的每个元素应用一个函数,并将结果存入另一个容器。 - `copy`:将源...

Global site tag (gtag.js) - Google Analytics