`
caiwb1990
  • 浏览: 315112 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

2dx数组排序问题

 
阅读更多

大家可能遇到过用sort排序数组时,在win32和部分手机可能会不一致的情况。

这时把std::sort换成stable_sort就OK了。


这两个函数的原理都是快速排序,时间复杂度在所有排序中最低,为O(nlog2n) ;

sort的应用;

1、可以传入两个参数;

     sort(a,a+N) ,其中a是数组,a+N表示对a[0]至a[N-1]的N个数进行排序(默认从小到大排序);

2、传入三个参数;

     sort(a,a+N,cmp),第三个参数是一个函数 ;

     如果让函数从大到小排序,可以用如下算法实现;

      bool cmp(int a,int b){return a>b};

      sort(A,A+N,cmp);

而stable_sort的用法与sort一致,区别是stable_sort函数遇到两个数相等时,不对其交换顺序;这个应用在数组里面不受影响,当函数参数传入的是结构体时,会发现两者之间的明显区别;
分享到:
评论

相关推荐

    mycode_冒泡排序_emu8086冒泡_

    2. 外层循环:用CX控制排序的轮数,每次循环将最大的元素“冒”到数组末尾。 3. 内层循环:比较相邻元素,如果前一个比后一个大,则交换它们。这个过程可能需要使用`CMP`指令进行比较,`JGE`(大于等于跳跃)指令来...

    rand_sort:具有不确定性能特征的数组排序

    随机排序 这是一个非常糟糕的主意,但这很有趣。... gem 'rand_sort', :github => 'dydx/rand_sort' 然后在您的项目中只require 'rand_sort' 现在,您可以执行以下操作: arr = (1..6).to_a.shuffle p arr.

    cocos2dx A*

    2. **开放节点集合**:创建一个优先队列,用于存放待处理的节点,按照F(n)值排序。 3. **关闭节点集合**:记录已经处理过的节点,避免重复搜索。 4. **搜索过程**:从起点开始,将其添加到开放节点集合中。然后,...

    汇编语言冒泡法排序

    - `ARRAY DB -1,1,3,5,2,4,6,9`:定义了一个字节型数组,包含8个未排序的数据。 - `COUNT EQU $ - ARRAY`:计算数组元素的数量,`$` 符号表示当前地址,减去数组起始地址得到数组长度。 2. **代码段**: - `...

    SmallGame_Cocos2dx:小游戏cocos2dx编写

    根据游戏需求,设计合适的数据结构和算法,例如用数组或链表存储游戏对象,使用搜索和排序算法优化游戏逻辑。 4.2 物理引擎集成 Cocos2dx支持Box2D物理引擎,可以轻松创建动态物理世界,实现物体碰撞检测和物理行为...

    微机程序8086排序

    另外还定义了几个用于显示结果的字符串缓冲区(BUF1、BUF2、BUF3),以及一个用于存储排序后数据的数组SCORE2。 #### 排序算法实现 接下来是排序算法的实现。排序算法采用的是简单的冒泡排序算法,该算法通过重复...

    汇编 冒泡排序

    1. **数据段**:数据段定义了需要排序的数组`adw`。 ```assembly datasegment adw 0307h,0802h,0605h,0909h,0506h,0103h,0401h,0808h,0702h,0105h dataends ``` 这里定义了一个名为`adw`的数组,其中包含10个...

    汇编语言 4位数排序代码

    2. 调用 `show2` 展示降序排序的结果。 3. 使用 `int 21h` 的 `4Ch` 功能退出程序。 #### 关键子程序分析 - **ch1**:处理输入的数字,将其转换为可以比较的形式并存储。 - **ch2**:调整输入数组的格式,以便后续...

    汇编语言中的排序方法[借鉴].pdf

    - **初始化**:设置数组指针(如DX)和比较次数(如AH)。 - **主循环**:在每次循环中,遍历数组的未排序部分。 - **内层循环**:用BX作为数组指针,逐个比较相邻元素。 - 如果前一个元素小于等于后一个元素,...

    js数组的基本用法及数组根据下标(数值或字符)移除元素

    `sort` 方法对数组元素进行排序,默认按字符编码顺序,可以通过提供比较函数来自定义排序逻辑。 数组还可以转换为字符串,使用 `join` 方法。这个方法接受一个参数作为分隔符,并返回一个字符串,该字符串由数组中...

    从小到大的冒泡排序法

    根据给定的信息,我们可以深入分析该程序实现的冒泡排序算法以及其在汇编语言中的具体应用。 ### 冒泡排序的基本概念 冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序...

    汇编排序问题

    1. `num` 数组用于存储用户输入的20个待排序的数字,每个数字占两个字节。 2. `i` 用于记录输入的数字个数,初始值为0。 3. `char` 是一个字符串,包含提示信息和换行符,用于输出结果前的提示。 4. `rec` 用于存储...

    dx渲染流水线+depth in depth

    2. **顶点着色器(Vertex Shader)**:每个输入的顶点都会通过顶点着色器进行处理。这个阶段可以执行复杂的数学运算,如坐标变换、光照计算等,将顶点位置从模型空间转换到屏幕空间。 3. **几何着色器(Geometry ...

    第4章汇编语言程序设计-山东工商学院.pdf

    5. 数组排序: - 对于16位无符号数或有符号数数组的排序,可以使用冒泡排序或选择排序等算法,根据数据类型(无符号/有符号)进行比较和交换。 6. 位操作: - 实现 AL 和 BL 中每一位的交叉操作,可以使用位操作...

    huibianqipaopaixu.rar_汇编语言 排序

    标题中的“huibianqipaopaixu.rar_汇编语言 排序”指的是一个关于使用汇编语言实现排序算法的资源包,其中的核心内容是起泡排序(Bubble Sort)的实现。起泡排序是一种简单直观的排序算法,通过重复遍历待排序的数列...

    8086/80386实验

    2. 对剩余元素重复步骤1,直至整个数组排序完成。 3. 子程序用于将排序后的BCD码转换为ASCII码并显示。 4. 寄存器BX存储数组首地址,AX和DX用于中断处理。 5. 定义数据段,包括学号、姓名、提示信息和待排序的数组。...

    汇编语言排序序程序并显示

    - **显示结果**: 在排序完成后,通过循环遍历数组,将数字转换回ASCII码,并使用`MOV AH, 02h`和`INT 21h`显示出来。 ### 5. 结束处理 最后,程序通过`MOV AH, 4Ch`和`INT 21h`来结束程序运行,并返回操作系统。 ...

    ABCDE.rar_冒泡排序 汇编

    冒泡排序是一种基础的排序算法,它通过重复遍历待排序的序列,比较相邻元素并交换位置来达到排序的目的。在计算机科学中,特别是在汇编语言编程中,理解和实现冒泡排序有助于深入理解数据处理的底层逻辑。接下来,...

    基础汇编程序(7)排序实验

    首先定义了数据段`datasegment`,在这个段中组织了50个待排序的数,这些数被依次存放在`buf`数组中。为了方便起见,这里使用了十六进制表示法来存储数值。同时定义了一个计数变量`contequ$-buf`,用于计算数组元素的...

    图片拖拽排序-纯原生js

    function comparePositions(img1, img2) { // 检查两个图片的边界是否交叉 // 如果交叉,交换它们在数组中的位置 } // 在mouseup事件中,检查是否需要重新排序 document.addEventListener('mouseup', function() ...

Global site tag (gtag.js) - Google Analytics