zoukankan      html  css  js  c++  java
  • 数组的运用、排序

    问题描述                                                 

      在别人的博客上看到起面试经历中的面试题,自己也想实现下,说实话,这道题以前做数据结构的课程设计是做过的,而且这样的题,当时还问了同学的,可是没有自己想,没有上心,到现在也就影响不太深刻了,当时可能也没有很好地理解数组的使用。

    给定一个整型数组,输入一个数字N时,要输出数组中第N大的数,并把它原来的下标输出来,要求用C语言实现,时间复杂度要求最小,20分钟时间。

    代码                                                        

    View Code

    总结                                                        
        加深印象,不过还没有实现其时间复杂度最小的要求,排序的算法现在还不是很熟悉,不过会看到的,到时再来改进一下这个题的解法。

    最后作者还说 面试官问了不用辅助空间怎么实现。 也就是说不允许定义一个存放下标的数组。

    刚一出Intel大门,突然想到了解决不用辅助空间的方法,唉~反应太迟钝了,第一次遍历下数组,知道了数组最大元素。INT类型的是4个字节,一般整数不会完全用完,可以用4个字节的前2个字节存放它们的下标(前提是这个数小于2^16),这样每次冒泡时,比较它们的低16位就行了,同时下标也跟着元素的交换走了。

    这个我不是很懂,怎样让前两个字节存放它们的下标,然后再比较低16位。

      今天懂了怎么让前两个字节存放它们的下标,再比较低16位的做法了,代码如下:

    View Code
  • 相关阅读:
    Daily Scrum 11.20
    Daily Scrum 11.19
    Daily Scrum 11.18
    Daily Scrum 11.17
    Daily Scrum 11.16
    Daily Scrum 11.15
    Loj10222佳佳的 Fibonacci
    CH3801Rainbow的信号
    js仓库。。。
    【UVa1635】Irrelevant Elements
  • 原文地址:https://www.cnblogs.com/zhangyingai/p/7099108.html
Copyright © 2011-2022 走看看