返回一个数组升序排列后的位置信息--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. Ftrace使用指南及跟踪系统调用

    http://vonnyfly.github.io/2013/06/24/ftraceshi-yong-zhi-nan/

  2. [Struts2]配置文件

    摘要 在struts2中,有多个配置文件properties或者xml文件,那么它们的加载顺序是怎样的? 配置文件 struts2有以下几种配置文件,并按以下顺序加载 1.default.proper ...

  3. Android开发中遇到的问题(一)——Android模拟器端口被占用问题的解决办法

    一.问题描述 今天在Eclipse中运行Android项目时遇到"The connection to adb is down, and a severe error has occured& ...

  4. PHP的unset究竟会不会释放内存?

    首先让我们看一个例子 var_dump(memory_get_usage());    $a = "laruence";    var_dump(memory_get_usage( ...

  5. SQL SERVER 2005 数据库置疑修复

    alter database 置疑数据库 set emergency go alter database 置疑数据库 set single_user with rollback immediate g ...

  6. 【T05】套接字接口比XTI_TLI更好用

    1.用于网络编程的API接口有两种: Berkeley套接字 XTL 2.套接字是加州大学伯克利分校为其Unix操作系统版本开发的,TLI是AT&T(贝尔实验室)为Unix系统V3.0开发的 ...

  7. ASP.NET MVC 4 简介

    介绍 使用Visual Studio 2010开发的话,首先需要安装MVC4,可以参考另一篇文章 进行安装. ASP.NET MVC 运行流程 (Clinet) Http Request 客户端发起 ...

  8. MySQL 四种事务隔离级的说明[转]

    很早之前写的文章,重新回顾和学习下: 按照SQL:1992 事务隔离级别,InnoDB默认是可重复读的(REPEATABLE READ).MySQL/InnoDB 提供SQL标准所描述的所有四个事务隔 ...

  9. 【Visual Studio】VS发布应用未能创建默认证书的问题解决方法

    解决方法:点击你创建的项目 右键> 属性>签名>从存储区选择>选择证书这时候显示无可用证书 ,然后我从文件区选择了一个结果,又出现了第二个问题.提示我“签名时出错: 指定了无效 ...

  10. TurboCAD Pro for Mac(二维绘图和三维建模工具)破解版安装

    1.软件简介    TurboCAD Pro 是 macOS 系统上一款二维绘图和三维建模工具,具备强大的绘图和设计特性,加上强大的创建复杂的三维模型的工具,三维 OpenGL 的渲染,和超过 11, ...