返回一个数组升序排列后的位置信息--C#程序举例

返回某一个数组升序排序后的位置  比如:{8,10,9,11}排序后应该是{8,9,10,11},但是需要返回{1,3,2,4}   大概记忆里是这么个意思很明显这是一个算法题

同样这是一个面试题做倒是做出来了,但是效率太低了,我都看不上自己做的,感谢面试官给出的提示:这为什么要排序呢?

是的,这根本不需要排序,只需要找出比 对比的元素小的元素个数即可(有了这个思路)可以写程序了

程序方法如下

         /// <summary>
/// 返回一个数组升序后的位置信息
/// </summary>
/// <param name="array"></param>
/// <returns></returns>
private static int[] getAscendingIndex(int[] array)
{
int[] indexArray = new int[array.Length];
for (int i = ; i < array.Length; i++)
{
int index = ;
for (int j = ; j < array.Length; j++)
{
if (array[j]<= array[i])
{
index++;
}
}
indexArray[i] = index;
}
return indexArray;
}

测试程序如下:

         static void Main(string[] args)
{
int[] ArrayTest = new int[]{,,,};
int[] resultArray = getAscendingIndex(ArrayTest);
for (int i = ; i < resultArray.Length; i++)
{
Console.WriteLine(resultArray[i]);
} Console.Read();
}

输出结果:

源程序有需要的可以下载

源代码工程文件下载

各位大侠,如果有更好的方法算法复杂度更低,麻烦给出,感激!欢迎留言

返回一个数组升序排列后的位置信息--C#程序举例的更多相关文章

  1. C#实现如何判断一个数组中是否有重复的元素 返回一个数组升序排列后的位置信息--C#程序举例 求生欲很强的数据库 别跟我谈EF抵抗并发,敢问你到底会不会用EntityFramework

    C#实现如何判断一个数组中是否有重复的元素   如何判断一个数组中是否有重复的元素 实现判断数组中是否包含有重复的元素方法 这里用C#代码给出实例 方法一:可以新建一个hashtable利用hasht ...

  2. 面试题-->写一个函数,返回一个数组中所有元素被第一个元素除的结果

    package com.rui.test; import java.util.Random; /** * @author poseidon * @version 1.0 * @date:2015年10 ...

  3. 【转载】让c++ 函数返回一个数组

    在c++中是不允许数组作为函数的返回值的 int [] someFunction( ); //ILLEGAL 要想实现函数返回一个数组,那返回对应数组里面类型的指针 you must return a ...

  4. get_object_var 返回一个数组

    语法:get_object_var($object),返回一个数组.获取$object对象中的属性,组成一个数组 实例: <?php class person{ public $name=&qu ...

  5. python ctypes库3_如何传递并返回一个数组

    可以将数组指针传递给dll,但无法返回数组指针,python中没有对应的数组指针类型. 如果需要返回数组,需借助结构体. 参考ctypes官方文档: https://docs.python.org/3 ...

  6. 在排序数组中查找元素的第一个和最后一个位置(给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。)

    示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: [3,4] 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出 ...

  7. C语言中函数中传入一个数组,并且返回一个数组

    一.C语言可以很容易将一个数组传递给一个自定义函数,格式如下: main() { adb(float a[],int n); } float adb(float a[],int n) { …… ret ...

  8. C语言之实现函数返回一个数组,以及选择排序,还有折半查找。这是同学的一个作业。。。

    作业的具体要求如下: 编写一个完整的程序,实现如下功能.(1)    输入10个无序的整数.(2)    用选择排序法将以上接收的10个无序整数按从大到小的顺序排序.(3)    要求任意输入一个整数 ...

  9. java实现返回一个字符串所有排列

    今天偶然看到了一个笔试题,觉得挺有意思,分享一下解题思路 public void permute(String string); public void permute(char[] chars , ...

随机推荐

  1. C#编程(七十九)---------- 反射

    反射 在介绍翻着之前,先说两个小案例 B超:什么叫B超呢?就是透过肚皮能看到你内脏的情况,不用打开肚子才能看.这是什么样的一种技术呢?B超是B型超声波,它可以透过肚皮通过向你体内发射B型超声波,当超声 ...

  2. 1.1 lambda表达式

    一.处理匿名内部类 1.Runnable接口 new Thread(new Runnable() { public void run() { System.out.println("hell ...

  3. Go语言之高级篇beego框架之模型(Models)

    一.模型(Models) 1.beego-orm的相关特性 支持 Go 的所有类型存储 -轻松上手,采用简单的 CRUD 风格 -自动 Join 关联表 跨数据库兼容查询 允许直接使用 SQL 查询/ ...

  4. PC高级语言与施耐德、罗克韦尔、台达等PLC的Modbus通讯源代码(ModbusTCP.DLL/ModbusRTU.DLL)

    1.0  通讯组件概述 该类通讯组件适用于基于PC高级语言的工业自动化控制系统,用于PC与可编程控制器(PLC).智能仪表等进行数据通讯.组件采用动态链接库文件(*.DLL)的形式,在PC系统的项目工 ...

  5. MDX Cookbook 05 - 条件过滤 FILTER-COUNT 与 SUM-IIF 实现

    下面的这个查询返回每个财月的 Customer Count 和 基于上个月比较的 Growth in Customer Base 的记录,Slicer 是 Mountain bikes. SELECT ...

  6. c# 序列化BinaryFormatter、SoapFormatter和XmlSerializer的区别

    在C#中常见的序列化的方法主要也有三个:BinaryFormatter.SoapFormatter.XML序列化 1.BinaryFormatter 序列化 [Serializable] //如果要想 ...

  7. Reg 命令修改注册表

    首先要说明:编辑注册表不当可能会严重损坏您的系统.在更改注册表之前,应备份计算机上任何有价值的数据 只有在别无选择的情况下,才直接编辑注册表.注册表编辑器会忽略标准的安全措施,从而使得这些设置会降低性 ...

  8. python排序出现的问题以及解决方案

    对某个文件夹中的文件重命名的时候,发现有些文件丢失,代码如下: #coding=gbk # Findthe every dir, if 01.rm exist in it, then rename i ...

  9. 12C -- ORA-65005: missing or invalid file name pattern for file

    克隆pdb创建新的pdb的时候遇到了以下的错误,具体过程如下文.数据库版本:12.2.0.1 查看已有pdb的tempfile文件 SQL> select name from v$tempfil ...

  10. 使用ExpandableListView以及如何优化view的显示减少内存占用

    上篇博客讲到如何获取手机中所有歌曲的信息.本文就把上篇获取到的歌曲按照歌手名字分类.用一个ExpandableListView显示出来. MainActivity .java   public cla ...