精华内容
下载资源
问答
  • C++用快速排序对一组数据进行从小到大排列
    千次阅读
    2018-09-29 22:22:22

    快速排序法:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速排序(此过程可以用到函数递归的方法)。

    #include <iostream>
    #include <time.h>//引入头文件
    using namespace std;
    
    void srandData(int *, int );//用随机数初始化数组的函数
    void sort(int *, int ,int );//快速排序法实现函数
    void display(int *, int );//在屏幕上输出函数
    int main()
    {
    	const int N = 10;
    	int arr[N];
    
    	srandData(arr, N);
    	sort(arr, 0, N - 1);
    	display(arr, N);
    
        return 0;
    }
    void srandData(int *a, int n)
    {
        srand(time(NULL));
    	
    	for (int i = 0; i < n; i++)
    	{
    		a[i] = rand() % 50;//取50以下的数字
    		cout << a[i] << " ";
    	}
    	
    	cout << endl;
    }
    void sort(int *a, int start, int end)
    {
    	if(start >= end)
    	{
    		return ;
    	}
        int i = start;
        int j = end;
        int key = a[i];//设置基准位
    	while(i < j)
    	{
    		while(i < j && a[j] >= key)
    		{
    			j--;
    		}
    		a[i] = a[j];
    		while(i < j && a[i] <= key)
    		{
    			i++;
    
    		}
    		a[j] = a[i];
    	}
    	a[i] = key;
    	sort(a, start, i - 1);//此处用到函数递归的方法
    	sort(a, i + 1, end);
    }
    void display(int *a, int n)
    {
        for(int i = 0; i < n; i++)
        {
            cout << a[i] << " ";
        }
        cout << endl;
    }
    
    更多相关内容
  • python 对一组list数据,进行区间划分,按照大小排序并返回索引值:一、对一组纬度数据进行排序:二、将lat数据按照10为区间进行排序并统计每个区间存在的个数: 最近在海洋数据进行处理时,对数据需要进行一些...

    python 对一组list数据,进行区间划分,按照大小排序并返回索引值:


    最近在对海洋数据进行处理时,对数据需要进行一些排序,数据匹配等操作;
    现对我所希望实现的一些函数进行总结:

    一、对一组纬度数据进行排序:

    现有4000多个纬度数据,从第0个至最后一个从-90°~90°随机分布。

    在这里插入图片描述

    想要实现从-90°依次从到小排至90°,既升序排列,同时返回其下标
    这里引用两个函数sorted 、enumerate
    第一个函数:sorted 用法说明如下
    list = sorted(iterable, key=None, reverse=False)
    如果只想实现升序排列,直接进行如下操作即可

    lat_sort=sorted(lat)
    

    得到:
    在这里插入图片描述但是我们想同时返回其在原来列表中的下标,既需要enumerate函数的帮忙
    其使用方法如下:
    enumerate(iterable, start=0)
    Parameters:
    Iterable: any object that supports iteration
    Start: the index value from which the counter is
    to be started, by default it is 0
    我们先对lat数据直接进行使用看看返回了什么:

    a=enumerate[lat]
    

    在这里插入图片描述发现无法查看其具体结果,所以再将其转换为list格式,以便浏览

    a=list(enumerate(lat))
    

    在这里插入图片描述
    很明显,上述操作,将每个原始lat中数据的值及其下标返回了,因此再次进行sorted排序是即可查看它对应的下标啦~

    但是!!!,因为此时list中既有下标、又有数值,在进行排序时是按照下标还是数值呢,所以需要增加一个维度设定,既

    对于sorted(iterable, key=None, reverse=False)中的key进行设定,使其按照所需纬度进行排序。

    这里我需要的是根据数值排序,所以进行如下操作:

        
    a=sorted(list(enumerate(lat)),key=lambda dimension: dimension[1])
    

    。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
    补充一下:

    lambda 函数是一种小的匿名函数,可接受任意数量的参数,但只能有一个表达式。
    比如:对于想要传入的参数使其加上6,即可设置为:

    x= lambda a : a + 10
    

    。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
    回到正题
    我们运行上述代码会得到:
    在这里插入图片描述果然!!!不出所料按照我们想要的结果实现啦~

    下面,是提取对应的维度结果,比如我们想要将下标和数值分别放置在一个list中,只要这样即可:

    index = [i[0] for i in a]
    lat_sort = [i[1] for i in a]    
        
    

    在这里插入图片描述
    在这里插入图片描述
    不出所料,是不是很easy呐!
    如果想要按照原始lat中,不同数值按照不同颜色排列,只需将list转为array即可

    lat_sort=np.array(lat_sort)    
    

    在这里插入图片描述

    二、将lat数据按照10为区间进行排序并统计每个区间存在的个数:

    首先整理一下思路,我们要进行排序,然后区间进行分割。
    这里引出一个新的函数:groupby(),其参数属性如下所示:

    DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=, observed=False, dropna=True)
    感兴趣的小伙伴们可以去点击下方中进行仔细浏览:

    groupby参数引用

    总之,我们可以通过groupby,达到分割数据的目的,
    进行如下操作:

        
    lat_sort=[]
    for k, g in groupby(sorted(lat), key=lambda x:x//10):
         #x//10:对x取整除 - 返回商的整数部分
        print('{}-{}:{}'.format(k*10, (k+1)*10-1,len(list(g))))
    
    
    

    在这里插入图片描述
    完美!!!

    		                            一个努力学习python的海洋小白
    		                            水平有限,欢迎指正!!!
    		                            欢迎评论、收藏。
    
    展开全文
  • 简单排序 首先,让我们来看看最简单的情况:将个数组元素从低到高进行简单排序,这个函数既可以按数字大小排列也可以按字母顺序排列。PHP的sort()函数实现了这个功能,如Listing A所示: Listing A 复制代码 ...
  • 在编写代码过程中,可能需要出现一组数据与另外一个数组相关,并且需要根据相关数据对数组进行整体排序,我们主要思路为:将数据与数组结合成一个大数组,并使用matlab的内置函数sort函数进行排序。这里主要介绍...

    前言

    在编写代码过程中,可能需要出现一组数据与另外一个数组相关,并且需要根据相关数据对数组进行整体排序,我们主要思路为:将数据与数组结合成一个大数组,并使用matlab的内置函数sort函数进行排序。这里主要介绍sortrows的使用。

    一、sortrows函数

    sortrows函数可以把一个矩阵按照某一列中数值的大小顺序把每一行进行排序,各行的元素的顺序保持不变。主要有以下两种使用方法:
    (1)sortrows(A):按照第一列中数值从小到大的顺序把每一行进行排序。
    (2)sortrows(A,column):按照第column列中数值从小到大的顺序把每一行进行排序,若column是负的,则是从大到小的顺序;若column是行向量,意味着先按照第一列,若第一列中有数值一样的,把在数值一样的行再按照第七列数值的大小顺序排序,即主次排序法。

    二、使用演示

    生成一个向量A,一个数组B,A的每一元素对应于B的每一行元素,根据A的数据对B进行排序。最后可以将C的第一列删除得到按照一定规则排序的数组。

    代码演示如下(示例):
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 最近在写个算法的时候,把一些数据存在了pair中,并且需要根据pair中first或者second的值这些数据进行排序。比如:输入数据(1,2)、(4,2)、(3,3)、(2,1)根据first的值大小进行升序排序,输出(1,2)、(2...

    最近在写一个算法的时候,把一些数据存在了pair中,并且需要根据pair中first或者second的值对这些数据进行排序。比如:输入数据(1,2)、(4,2)、(3,3)、(2,1)根据first的值大小进行升序排序,输出(1,2)、(2,1)、(3,3)、(4,2)。
    经过思索之后得到的实现方法如下:
    首先将这些数据存在vector数组中,vector<pair<int,int>>vec;
    然后使用sort函数对数组进行排序,这里就涉及到了sort函数的使用了。
    下面是sort函数使用方法
    函数声明:

    template <class RandomAccessIterator>
      void stable_sort ( RandomAccessIterator first, RandomAccessIterator last );
    
    template <class RandomAccessIterator, class Compare>
      void stable_sort ( RandomAccessIterator first, RandomAccessIterator last,
                         Compare comp );

    参数解释:
    (1)第一个是要排序的数组的起始地址。
    (2)第二个是结束的地址(最后一位要排序的地址的下一地址)。
    (3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
    我们可以根据自己的需求自定义第三个参数cmp函数,比如若要对整型数组降序排序,则可以这样来写cmp函数:

    bool cmp(int a, int b)
    {
        return a>b;//升序则为a<b
    }

    这个cmp参数使用起来非常方便,因为它正好能解决我们的pair排序问题。
    我们只要根据数组中的元素类型定义cmp函数的参数,并且根据需求定义函数体

    bool cmp(pair<int, int>a, pair<int, int>b)
    {
        return a.first<b.first;//根据fisrt的值升序排序
        //return a.second<b.second;//根据second的值升序排序
    }

    然后调用sort函数sort(vec.begin(),vec.end(),cmp)。
    便可以根据pair中first的值进行升序排序。

    下面是具体代码实现

    #include "stdafx.h"
    #include <iostream>
    #include <vector>
    #include<algorithm>
    
    using namespace std;
    
    //根据first的值升序排序
    bool cmp1(pair<int,int>a,pair<int,int>b)
    {
        return a.first < b.first;
    }
    
    //根据second的值升序排序
    bool cmp2(pair<int, int>a, pair<int, int>b)
    {
        return a.second < b.second;
    }
    int main()
    {
        vector<pair<int, int>>vec;
        vec.push_back({ 1,2 });
        vec.push_back({ 4,2 });
        vec.push_back({ 3,3 });
        vec.push_back({ 2,1 });
        sort(vec.begin(), vec.end(), cmp1);
        cout << "根据first的值升序排序:" << endl;
        for (auto it = vec.begin();it != vec.end();it++)
        {
            cout << "(" << it->first << "," << it->second << ")" << endl;
        }
        sort(vec.begin(), vec.end(), cmp2);
        cout << "根据second的值升序排序:" << endl;
        for (auto it = vec.begin();it != vec.end();it++)
        {
            cout << "(" << it->first << "," << it->second << ")" << endl;
        }
    }

    运行截图

     

    转载于:https://www.cnblogs.com/bigyang/p/8590552.html

    展开全文
  • python中对数据进行各种排序的方法

    千次阅读 2021-02-10 09:13:46
    Python列表具有内置的 list...请注意,sort()原始数据被破坏,sorted()没有原始数据进行操作,而是新建了个新数据、基本的排序最基本的排序很简单。只要使用sorted()函数即可返回个 新的排序的列表>>...
  • 【C++之重载函数数据排序

    千次阅读 2020-10-24 21:53:02
    题目要求: n个数据进行从小到大排序,数据类型可以是整型、单精度型、双精度型,用重载函数。 ——谭浩强的《C++面向对象程序设计》第1章习题第13小题
  • C语言:用数组实现数据大小排序
  • js数组内数字按大小排序实现函数

    千次阅读 2017-08-23 09:05:00
    1、代码 var arr = [ 5 , 100 , 6 , 3 ,- 12 ]; function sort (arr) { for ( var i= 0 ...如果从大到小排序的话,则将 if ( arr [j] > arr [j+1] )改为 if ( arr [j] < arr [j+1] )即可
  • 需求: 1. 数据库表中有两个字段,分别是id_card...4.再根据每个id_card相同的中对应的最小create_date将id_card进行升序排列 初始数据是这样的: 最终希望的结果如下: 分析步骤: 实现3,只需要通过多..
  • 编写个sort()函数,实现选择法排序,在主函数中输入10个整数,主函数调用sort()函数实现排序后将数据输出。重赏重赏更新时间:2019-05-06 04:06最满意答案#include void sort(int a[]){int i,j,index,temp;for(i=0...
  • // 5、写函数,实现数字数组的排序 function sort(arr){ for (i=0;i<arr.length-1;i++){//外层循环 for (j=0;j<arr.length-i-1;j++){//内存循环 if (arr[j]>arr[j+1]){//交换两个数 ...
  • sort排序函数

    千次阅读 2019-06-03 22:37:27
    sort函数可以排序任何类型的函数,包括自己写的结构体 (sort函数效率高) 头文件 #include<algorithm> 排序数值 从小到大 int num[10]={1,9,3,5,6,7,4,3,32,2}; //sort(num+i,num+j),从num[i]到num[j-1]...
  • 数组从小到大排序函数,这个函数虽然执行效率不高,但是对于RAM的占用却很少。对于资源不够丰富的单片机,且数据量不大的数组的排序是非常实用的。
  • C语言编写程序 给定一组数,求大于0,等于0,小于0的数据个数#defineN10main(){intnum1=0,num2=0,num3=0,i;for(i=0;i一道C语言题目:求一组数中大于平均值的数的个数两个地方,我认为你要考虑一下:1.elsebreak;//按照你...
  • java数组排序函数

    千次阅读 2020-06-08 16:20:14
    排序算法,基本的高级语言都有一些提供。C语言有qsort()函数,C++有sort()函数,java语言有Arrays类(不是Array)。...Java APIArrays类的说明是:此类包含用来操作数组(比如排序和搜索)的各种方法。
  • Mysql中对数据排序的基础方法是使用ORDER BY,升序为ASC,逆序为DESC。 mysql> select * from student order by sid asc; //按sid 升序排列 +-------------+-----------+----------+-------+-----+ | sid | ...
  • 用Excel函数实现排序与筛选的方法

    千次阅读 2020-12-31 08:38:25
    Execl本身具有很方便的排序与筛选功能,下拉“数据”...其次还有局限,例如排序只能最多三个关键字(三列数据)排序,筛选数据可用“与”、或“或”条件筛选,但不同列数据只能用“与”条件筛选。例如某...
  • JAVA中的排序函数

    千次阅读 2020-09-23 16:53:38
    JAVA中的排序函数包括java.util.Arrays中的Arrays.sort();java.util.Collections中的Collections.sort()
  • 1.JS对数元素排序 var x = ['ad','llaf','jha']; x.sort(); ​ 要是数组元素是字符串,那么使用sort()函数可以直接排序,因为sort() 函数默认按照字符串排序, 如果数字按照字符串来排序,则 “25” 大于 “100”...
  • 如何判断一组数据是否符合正态分布呢?

    万次阅读 多人点赞 2021-03-04 14:21:28
    在很多模型及假设检验中都需要满足个假设条件:数据需服从正态分布。这篇文章主要讲讲如何判断数据是否符合正态分布。主要分为两种方法:描述统计方法和统计检验方法。 描述统计方法 描述统计就是用描述的数字或...
  • 函数种语法形式:向量型和数型。1.向量是指包含行或列的区域。向量形式在单行或单列区域中查找值,然后返回第2个单行区域或单列区域中相同位置的值。语法形式:lookup(lookup_value,lookup_vector,result_...
  • 学生成绩的排名,在Excel可以应用数据处理中的升序或者降序的功能而实现,但是:2、成绩表按学号升序的排列:用鼠标左键选中学号至期评成绩,然后用单击菜单栏中的数据选择筛选,得到的按学号升序的排列表,然后选...
  • 参考C语言的qsort函数实现个能任意数据类型(包括结构体)的数组进行排序函数 */ void mysort(void *base,size_t nelem,size_t width,int (*Comp)(const void *,const void *)) {  //base 为要排序
  • 部分内容转载自:https://www.cnblogs.com/handsomecui/p/4946151.html ...  pair 默认first升序,当first相同时second升序; 类模板:template &lt;class T1, class T2&gt; struct...
  • C++ sort() 排序函数

    千次阅读 2020-06-10 10:08:26
    sort(首元素地址(必填), 尾元素地址的下个地址(必填), 比较函数(非必填)); 二、如何使用sort排序 1、sort函数实现数的排序 #include<cstdio> #include<iostream> #include<c
  • <Excel> 数据分析excel常用函数

    万次阅读 多人点赞 2018-10-23 17:12:42
    简单函数(包含加总、计数、平均、最值、排序、乘积、除余、取整) 逻辑函数(包含if、iferror、and、or) 文本函数(包含文本提取、文本查找、文本替换、文本转换及合并) 引用与查找函数(vlookup、hlookup、lookup...
  • 本篇文章讲解三个高级排序算法,分别为希尔排序、归并排序、快速排序。虽然它们的思想很复杂,但真的运用得非常得巧妙,我会用丰富的例子以及动图来让大家轻松地理解并掌握。
  • JS调用sort函数进行排序

    千次阅读 2021-07-16 17:06:57
    前端使用VUE写个创建多择题模板的时候遇到个问题,出题人设置的答案是A...这时候就需要将学生答案选项进行数据排序,这儿推荐的是sort函数,既可以按照首字母进行排序,也可以按照数字的大小进行排序。 ...
  • 比如将接口返回的json解析并保存结果到excel中,按一定规律处理excel中的数据然后写入到新的excel文件中,汇总来自多个文件的内容到个excel中等等。 平时在工作中遇到比较繁琐的数据需要写入到excel中,除非excel...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 265,923
精华内容 106,369
关键字:

对一组数据大小排列的函数