精华内容
下载资源
问答
  • =IF(A2="","",COUNTIF($A$2:A2,A2)) ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200812114157821.png?x-oss-process=type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80...

    1、Excel数值相同自动递增编号—不需要排序

    =IF(A2="","",COUNTIF($A$2:A2,A2))
    

    在这里插入图片描述
    COUNTIF函数使用动态扩展的区域$A$2:A2作为统计范围,计算A列姓名在这个区域中出现的次数,如果出现的次数大于1,就是重复。
    如单元格B8,当“张”在A8再次出现时,这里对比的是A8在整个A列重复次数,不需要排序。

    2、Excel数值相同自动递增编号—需要排序

    =IF(A1=A2,B1+1,1)
    

    在这里插入图片描述
    IF函数实现该单元格和上一个单元格相同时,计数加1,如单元格B8,这里比对的是A7A8是否重复,范围相对于上个公式更小。如果需要这样排序的,可以用这个方法。

    展开全文
  • if函数实现三个数字从小到大排序

    千次阅读 2020-08-08 10:53:41
    """要求:通过输入三个数字,按从小到大的顺序输出""" x=float(input("请输入x的:")) y=float(input("请输入y的:")...z则将x,z的做交换,交换后保证x的比z小,此时x的保证为最小值 x,z=z,x if(y>z):#y,z
    """要求:通过输入三个数字,按从小到大的顺序输出"""
    x=float(input("请输入x的值:"))
    y=float(input("请输入y的值:"))
    z=float(input("请输入z的值:"))
    if(x>y):#x,y做比较,若x>y则将x,y的值做交换,交换后保证x的值比y小
        x,y=y,x
    if(x>z):#x,z做比较,若x>z则将x,z的值做交换,交换后保证x的值比z小,此时x的值保证为最小值
        x,z=z,x
    if(y>z):#y,z做比较,若y>z则将y,z的值做交换,交换后保证y的值比z小,则此时x<y<z达到排序的效果
        y,z=z,y
    print(x,y,z)
    #多个if的时候要注意两个执行的if语句不能相互产生影响
    #比如此处的比较函数顺序不能改变,否则会出现重复赋值的风险
    

    执行结果:
    第一个if:x=5,y=4,x>y条件成立进行交换,则执行后x=4,y=5
    第二个if:x=4,z=6,x>z条件不成立不进行交换,则执行后x=4,z=6
    第三个if:y=5,z=6,y>z条件不成立不进行交换,则执行后y=5,z=6
    最后结果x=4,y=5,z=6,打印x,y,z的结果如图
    在这里插入图片描述

    展开全文
  • 返回:true编程思路:我们知道堆排序在空间复杂度要求为1的时候效率是最好的 但是如果使用递归的话 由于函数栈的使用 空间复杂度变成了O(logN) 因此需要设计一个非递归的堆排序import java.uti

    请设计一个高效算法,判断数组中是否有重复值。必须保证额外空间复杂度为O(1)。

    给定一个int数组A及它的大小n,请返回它是否有重复值。

    测试样例:
    [1,2,3,4,5,5,6],7
    返回:true

    编程思路:我们知道堆排序在空间复杂度要求为1的时候效率是最好的 但是如果使用递归的话 由于函数栈的使用 空间复杂度变成了O(logN) 因此需要设计一个非递归的堆排序

    import java.util.*;
    
    public class Checker {
        public boolean checkDuplicate(int[] a, int n) {
            // write code here
            if(a==null||n<2){
                return false;
            }
            //初始化大根堆
            for(int i=n/2-1;i>=0;i--){
                buildHeap(a,i,n-1);
            }
            //每次将大根堆根与最后一个元素交换  缩小大根堆 直至堆大小为1
            for(int i=n-1;i>0;i--){
                 change(a,0,i);
                 buildHeap(a,0,i-1);
            }
            for(int i=1;i<n;i++){
                if(a[i-1]==a[i])
                    return true;
            }
            return  false;
        }
        public void buildHeap(int[] a,int start,int end){
            int child = start*2+1;
            //利用循环判断  不用递归
            while(child<end){
                if(a[child+1]>a[child]&&(child+1)<=end)
                    child=child+1;
                if(a[child]<a[start]){
                    break;
                }else{
                    change(a,start,child);
                }
                start = child;
                child = 2*start+1;
            }
        }
        public void change(int[] tem,int a,int b){
            if(a!=b){
                int temm = tem[a];
                tem[a] = tem[b];
                tem[b] = temm;
            }
        }
    }

    这里写图片描述

    展开全文
  • sort函数自定义排序

    千次阅读 2020-12-15 18:09:29
    sort不但可以整型进行排序还能字符串进行排序。 咳咳,好像讲偏了哈,今天主要是讲自定义排序哈,c++自带的只是排升序,但是我要排降序怎么办呢。这个时候就需要我们自定义排序了。 这里我们可以看到那个...

    sort函数自定义排序

    咳咳,自定义排序说实话用的地方还是很多的,像ACM里面,天梯赛里面,特别是天梯,必出这玩意。。。咳咳,水点字数,咱继续。

    • 首先哈,我们来看一下c++自带的排序;

    在这里插入图片描述

    • 可以看出哈,默认是按升序排序的。

    • sort不但可以对整型进行排序还能对字符串进行排序。

    在这里插入图片描述

    • 咳咳,好像讲偏了哈,今天主要是讲自定义排序哈,c++自带的只是排升序,但是我要排降序怎么办呢。这个时候就需要我们自定义排序了。

    在这里插入图片描述

    • 这里我们可以看到那个cmp比较函数哈,排序规则也很简单,你想着降序是大的在前面,所以前面的数大于后面的数,所以写成 a>b 就可以了。是不是很好记。而且,系统自带的sort排序也是快速排序,还是很香的。
    • 这里是对数组进行排序,当出现结构的时候,有多个参数进行排序,其实可以直接在结构体里面进行cmp比较,然后直接sort就能够实现你想要的排序。
    • 然后这里也有两种常见的写法。先来看看 cmp函数 吧!
    • 题目: 我们第一阶级排序是对 x 进行排降序,在 x 相等的情况下,我们对 y 进行排升序。

    在这里插入图片描述

    bool cmp(node a,node b){
    	if(a.x!=b.x)return a.x>b.x;
    	return a.y<b.y;
    }
    
    • 我们只需要这样写就能完成对结构体多级阶级的排序了。
    • 然后第二种常见的写法就是在结构体里面,对 小于号< 方法的重载,内部编写逻辑也能实现多级排序。

    在这里插入图片描述

    	bool operator <(const node &b)const{
    		if(x!=b.x)return x>b.x;
    		return y<b.y;
    	} 
    
    • 区别也不大,一个写在结构体里面,直接用sort就行,一个写个函数,加个函数名就行。萝卜白菜,各有所爱,所以你喜欢哪一种呢?
    • 可能有人在问,你老是放图片干啥,直接放代码满,咳咳,我解释下哈,我觉得这个代码呢,需要你自己去打,多打,打了才会是你自己的。
    • 咳咳,学到这里,差不多也应该会用了,然后我们现在来实战一下。

    L2-009 抢红包 (25分)

    题目链接:(点我看题<-----这是一个链接)

    没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。

    输入格式:
    输入第一行给出一个正整数N(≤10​4 ),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:

    K       N1       P1     Nk     Pk

    其中K(0≤K≤20)是发出去的红包个数,Ni 是抢到红包的人的编号,Pi (>0)是其抢到的红包金额(以分为单位)。注意:对于同一个人发出的红包,每人最多只能抢1次,不能重复抢。

    输出格式:
    按照收入金额从高到低的递减顺序输出每个人的编号和收入金额(以元为单位,输出小数点后2位)。每个人的信息占一行,两数字间有1个空格。如果收入金额有并列,则按抢到红包的个数递减输出;如果还有并列,则按个人编号递增输出。

    输入样例:

    10
    3 2 22 10 58 8 125
    5 1 345 3 211 5 233 7 13 8 101
    1 7 8800
    2 1 1000 2 1000
    2 4 250 10 320
    6 5 11 9 22 8 33 7 44 10 55 4 2
    1 3 8800
    2 1 23 2 123
    1 8 250
    4 2 121 4 516 7 112 9 10

    输出样例:

    1 11.63
    2 3.63
    8 3.63
    3 2.11
    7 1.69
    6 -1.67
    9 -2.18
    10 -3.26
    5 -3.26
    4 -12.32

    • 这题根据题目要求,要对三个阶级进行排序,先按 收入降序 ,如果收入相等,那就按照 抢到红包的个数 进行排 降序 ,最后如何红包的个数也相等,那就按照 个人的编号 进行排 升序
    • 好了,了解他们的结构以后呢,那就可以写了,先建立数据结构,然后按照题目意思进行读取值并累计。
    • 代码如下:
    #include<bits/stdc++.h>
    using namespace std;
    struct node{
    	int id;   
    	int fa;   
    	int fachu;   
    	int k ;   
    	float shouru;
    	/*      这是小于号的重载       */
        bool operator <(const node &b)const{
            if(shouru!=b.shouru)return shouru>b.shouru;
            else if(k!=b.k)return k>b.k;
            return id<b.id;
        }
    }a[110000];
    
    /*      这是cmp函数       */
    // bool cmp(struct node a , struct node b){
    // 		if(a.shouru!=b.shouru)return a.shouru>b.shouru;
    // 		else if(a.k!=b.k) return a.k>b.k;
    // 		else return a.id<b.id;
    // }
    
    int main(){
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{
    		a[i].id = i;
    		int k;
    		cin>>k;
    		int sum = 0;
    		
    		while(k--)
    		{
    			int id, s;
    			cin>>id>>s;
    			sum = sum+s;
    			a[id].fachu = a[id].fachu+s;
    			a[id].k++;
    		}
    		a[i].fa = sum;
    	}
    
    	for(int i=1;i<=n;i++)
    		a[i].shouru = (a[i].fachu - a[i].fa)*1.0/100;
    		
    	sort(a+1,a+n+1);      //小于号重载使用
    //	sort(a+1,a+n+1,cmp);   函数使用
    	
    	for(int i=1;i<=n;i++) printf("%d %.2f\n",a[i].id,a[i].shouru);
    	return 0;
    }
    
    
    ------------------------------2020/12/15------------------------------
    改革尚未成功,同志仍需努力!!!
    展开全文
  • 1、Excel公式:用COUNTIF函数进行排序 =IF(COUNTIF(B$2:B8,B8)=1,A7+1,IF(B7=B8,A7,"?有重复")) 2、用COUNTIFS函数进行查重 =COUNTIFS(B$2:B8,B8,C$2:C8,C8) 3、用LOOKUP函数对无序表进行精确查询,参考:...
  • 运用sort函数对结构体数组进行排序

    千次阅读 2019-06-15 12:04:05
    根据pat甲级1032记录下sort函数的应用,虽然代码没有AC,但是记录下学习过程。 Input Specification: Each input file contains one test case. For each case, the first line contains two addresses of nodes ...
  • 排序函数:C++自带 sort排序函数用法

    千次阅读 2018-08-23 16:11:57
    c++有自带的sort排序函数,比自己写的冒泡算法快很多,可以拿来直接用 1、加上头文件#include &lt;algorithm&gt; ,using namespace std 2、函数使用方法:sort(首元素地址,尾元素地址的下一个地址,比较...
  • C语言冒泡排序函数

    千次阅读 2019-11-29 21:40:47
    C语言 冒泡排序算法 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,...持续每次越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 /*冒泡排序*/ #include <stdio.h> #def...
  • 使用冒泡排序讲解函数指针

    千次阅读 2014-04-07 02:59:13
    冒泡排序,思路直观,函数指针是初学者常常想不明白的,这里利用冒泡排序,来深度讲解函数指针的由来。
  • 重复值处理——删除(有几个相同就删除还是全部得相同) 缺失处理——删除,填充(均值,众数,中位数,前后相邻),插值(拉格朗日插值,牛顿插值) 异常处理——describe进行描述性分析+散点图+箱型图定位...
  • 函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数函数重复设计。它的最大特点是把函数使用的数据类型作为参数。 函数模板的声明形式为: template(参数表) { 函数体 } ...
  • 算法学习总结(2)——温故十大经典排序算法

    万次阅读 多人点赞 2019-08-29 14:57:51
    一序列对象根据某个关键字进行排序。 1.2、排序术语 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在...
  • bitmap海量无重复的整数排序

    千次阅读 2015-07-19 17:20:28
    现在有n个无重复的正整数(n 小于10的7次方),如果内存限制在1.5M以内,要求着n个数进行排序。【编程珠玑第一章题目】  很显然,10的7次方个整数占用的空间为10 ^ 7 * 4字节,大约等于40M,而内存限制为1.5M,...
  • Oracle函数

    万次阅读 多人点赞 2016-05-16 17:43:09
    概述ORACLE函数系列:Oracle常见函数大全Oracle-分析函数之连续求和sum(…) over(…)Oracle-分析函数排序值rank()和dense_rank()Oracle-分析函数之排序后顺序号row_number()Oracle-分析函数之取上下行数据lag()和...
  • 这里有C++STL——全面总结详细教程(附案例解析)(持续更新中) ...仿函数更改默认排序规则和Value值排序 map/ multimap容器 map基本概念 简介: map中所有元素都是pair pair中第一个元素为...
  • 自定义函数sort(int *p, int n),功能是n个数排序。在main函数中,调用它,输入的任意个数排序。 Input 多组测试数据,先输入n(n&lt;100),再输入n个任意整数 Output 输出从小到大排列后的数组 Sample ...
  • 华为机试题C++-去除重复字符并排序

    千次阅读 2015-09-16 21:32:41
    题目:去除重复字符并排序  去除重复字符并排序 运行时间限制:无限制 内容限制: 无限制 输入: 字符串 输出: 去除重复字符并排序的字符串 样例输入: aabcdefff 样例输出: abcdef C++实现如下: #...
  • Java实现 LeetCode 26 删除排序数组中的重复

    万次阅读 多人点赞 2020-02-12 20:57:38
    26. 删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的...
  • 十大排序算法

    万次阅读 多人点赞 2021-08-20 13:37:46
    重复步骤1~2,重复次数等于数组的长度,直到排序完成 代码实现 下面数组实现排序:{24, 7, 43, 78, 62, 98, 82, 18, 54, 37, 73, 9} 代码实现 public class BubbleSort { public static final int[] ARRAY = {...
  • 删除排序数组中的重复数字

    千次阅读 2016-05-13 15:38:36
    题目描述:给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。 样例:给出数组A =[1,1,2],你的...
  • leecode26 删除排序数组中的重复

    千次阅读 多人点赞 2019-11-25 20:11:22
    给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例1: 给定数...
  • 理解希尔排序排序过程

    万次阅读 多人点赞 2018-01-30 09:41:06
    1,有关插入排序 (1)插入排序的基本方法是:每步将一个待排序的元素,按其排序码大小插入到前面已经排好序的一组元素的适当位置上去,直到元素全部插入为止。 (2)可以选择不同的方法在已经排好序的有序数据表...
  • 删除排序数组中的重复项 II 文章目录Leetcode算法Java全解答--80. 删除排序数组中的重复项 II题目想法结果总结代码我的答案大佬们的答案测试用例其他 题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得...
  • 由一个C语言排序作业题(用if语句判断)引发的血案……
  • 函数的实参和形参、作为函数

    千次阅读 2019-01-01 22:41:13
    JavaScript中的函数定义并未指定函数形参的类型,函数调用也未传入的实参做任何类型检查。实际上,JavaScript函数调用甚至不检查传入形参的个数。 可选形参 当调用函数的时候传入的实参比函数声明时指定的...
  • 去除重复字符并排序: 输入: 字符串 输出: 去除重复字符并排序的字符串 样例输入: aabcdefff 样例输出: abcdef 统计出现的过的字符串,并将相应的数组位置为1,然后遍历数组,为1的将对应的字符输出...
  • LeetCode 26 删除排序数组中的重复

    万次阅读 2021-01-04 19:42:18
    LeetCode 26 删除排序数组中的重复项 题目链接 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在...
  • 80. 删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外...
  • P5是我花了半天时间写出来的排序函数,即,遇到重复值,跳过,从上一个非空序号开始继续排序。 定向排列(26*10=260种组合) 不定向排列(36*35=1260种组合,需从结果中挖掉...
  • 思路:利用Math.min()方法求最小值,但是该方法的参数是一个数值列表,而不是一个数组,故使用ES6新增的扩展运算符将数组转换成列表,然后传递到Math.min()方法中去即可。 var arr = [23, 45, 40, 30, 12]; var ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 209,075
精华内容 83,630
关键字:

如何利用if函数对重复值排序