zoukankan      html  css  js  c++  java
  • 面试小题

    题目不难,总结如下:

    1.冒泡排序:

    冒泡排序
     1    class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             string temp=Console.ReadLine();
     6             string[] tempArray=temp.Split(' ');
     7             int[] arry = new int[tempArray.Length];
     8 
     9             for (int i = 0; i < tempArray.Length; i++)
    10             {
    11                 arry[i] = Convert.ToInt32(tempArray[i]);
    12                    
    13             }
    14 
    15             PopSort(arry, true);
    16             PrintArray(arry);
    17             PopSort(arry,false);
    18             PrintArray(arry);
    19         }
    20 
    21         static void PrintArray(int[] arry)
    22         {
    23             for (int i = 0; i < arry.Length ; i++)
    24             {
    25                 Console.Write("{0} ",arry[i]);
    26             }
    27             Console.WriteLine();
    28         }
    29 
    30         static void PopSort(int[] arry,bool Increase)
    31         {
    32             for(int i=0;i<arry.Length-1;i++)
    33             {
    34                 for (int j = 0; j < arry.Length-1-i; j++)
    35                 {
    36                     if (Increase)
    37                     {
    38                         if (arry[j] > arry[j + 1])
    39                         {
    40                             int temp = arry[j];
    41                             arry[j] = arry[j + 1];
    42                             arry[j + 1] = temp;
    43                         }
    44                     }
    45                     else
    46                     {
    47                         if (arry[j] < arry[j + 1])
    48                         {
    49                             int temp = arry[j];
    50                             arry[j] = arry[j + 1];
    51                             arry[j + 1] = temp;
    52                         }
    53                     }
    54                 }
    55             }
    56         }
    57     }

    2.字符串倒置

    反序输出字符串
     1  class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             string temp = Console.ReadLine();
     6             Console.WriteLine("before convert:{0}", temp);
     7             StringBuilder sb = new StringBuilder(temp);          
     8             for (int i = 0; i < sb.Length / 2; i++)
     9             {
    10                 char c = sb[i];
    11                 sb[i] = sb[sb.Length - i - 1];
    12                 sb[sb.Length - i - 1] = c;
    13                 
    14             }
    15 
    16             temp = sb.ToString();
    17             Console.WriteLine("after convert:{0}",temp);
    18 
    19 
    20         }
    21     }

    3.二分法查找数组中的某个值

    二分查找
     1  class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             int[] arry = new int[] { 23,45,67,78,100};
     6             int a=100;
     7             int b = 23;
     8             int c = 67;
     9             int d = 40;
    10             Console.WriteLine("index of {0} is {1}",a, Find(arry, a));
    11             Console.WriteLine("index of {0} is {1}",b, Find(arry, b));
    12             Console.WriteLine("index of {0} is {1}",c, Find(arry, c));
    13             Console.WriteLine("index of {0} is {1}",d, Find(arry, d));
    14         }
    15 
    16         static int Find(int[] arry, int value)
    17         {
    18             int low = 0;
    19             int high = arry.Length;
    20            
    21 
    22             while (low <= high)
    23             {
    24                 int mid = (low + high) / 2;
    25                 if (arry[mid] == value)
    26                 {
    27                     return mid;
    28                 }
    29                 else if (arry[mid] < value)
    30                 {
    31                     low = mid + 1;
    32                 }
    33                 else
    34                 {
    35                     high = mid - 1;
    36                 }
    37 
    38             }
    39          
    40                 return -1;
    41         }
    42     }

    4.输入数字m,n,从1,2,3...n数列中取几个数,使其和等于m,输出所有可能的组合。

    View Code
     1 class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             int m = 15;
     6             int n = 9;
     7             int[] arry = new int[n];
     8             BagProblem(m, n, arry);
     9         }
    10 
    11 
    12         static void printArray(int[] arry)
    13         {
    14             for(int i=0;i<arry.Length;i++)
    15             {
    16                 if(arry[i]==1)
    17                 Console.Write("{0} ",i+1);
    18             }
    19 
    20             Console.WriteLine();
    21         }
    22 
    23         static void BagProblem(int m,int n, int[] arry)
    24         {
    25 
    26             if (n < 1 || m < 1)
    27             {
    28                 //Console.WriteLine("Invalide input");
    29                 return;
    30             }
    31             if (m < n) n = m;
    32             if (n == m)
    33             {
    34                 arry[n - 1] = 1;
    35                 printArray(arry);
    36                 //arry[n - 1] = 0;
    37             }
    38             arry[n - 1] = 1;
    39             BagProblem(m - n, n - 1, arry);
    40             arry[n - 1] = 0;
    41             BagProblem(m , n - 1, arry);
    42         }
    43     }
  • 相关阅读:
    阿里云观察——阿里云总裁王坚专访
    追寻凌云梦——对话阿里云总裁王坚
    四维的王坚和三维的阿里互联网汽车
    [2011移动者开发大会]王坚:互联网最革命的事是所有事情从离线到在线
    2013年8月,阿里云飞天5K集群成功上线,所有的服务对应的都是同一个系统内核、同一套分布式文件系统
    [搜索引擎大会]谷歌CEO Eric Schmit第一次高调用云和云计算的概念来描述谷歌所提供的互联网服务
    热门搜索引擎的TOP-K算法的python实现(回溯算法遍历trie树)
    海量日志数据提取出访问次数最多的那个IP python实现 总结
    Web数据挖掘 第十二章 Web使用挖掘的读书笔记
    Web数据挖掘 第十一章 观点挖掘和情感分析的读书笔记
  • 原文地址:https://www.cnblogs.com/marksun/p/3036697.html
Copyright © 2011-2022 走看看