ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:18.37KB ,
资源ID:8493227      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8493227.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微软面试常用算法总结C#编写.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微软面试常用算法总结C#编写.docx

1、微软面试常用算法总结C#编写全是用C#写的算法,并且都在VS上运行通过啦,希望能给大家一点参考!1.冒泡算法(这个太简单啦,不会考的,不过我们可以把这个当作Sort()工具来用哦,下边你就知道啦!)public static int bubble(int a) int temp = 0; for(int i=a.Length -1;i0;i-) for (int j = 1; j aj) temp = aj - 1; aj - 1 = aj; aj=temp; return a; 2.判断回文(比如给你一个字符串”madam”,这就是一个回文啦!)public static bool Chec

2、kPalindrome(string str) char charCompare = str.ToCharArray(); Stack s = new Stack(); Queue q = new Queue(); bool justfy = true; for (int i = 0; i str.Length; i+) s.Push(charComparei); q.Enqueue(charComparei); for (int i = 0; i str.Length; i+) if (s.Pop() != q.Dequeue() justfy = false; return justfy;

3、 3.两个无序数组的合并(如果是字符串数组的话把int改成string就可以啦!) public static List merge(int a, int b) List c = new List(); int i = 0; int j = 0; if (a=null|a.Length = 0) return b.ToList(); if (b=null|b.Length = 0) return a.ToList(); Array.Sort(a); /如果数组是有序的话这句就不用啦! Array.Sort(b); / 如果数组是有序的话这句就不用啦! if (a0 b0) c.Add(b0);

4、 j+; else c.Add(a0); i+; while (i a.Length & j b.Length) if (ai bj) c.Add(ai); i+; else c.Add(bj); j+; while (i a.Length) c.Add(ai); i+; while (j b.Length) c.Add(bj); j+; return c; 4.一个数组的去重(比如122334455变成12345,这个可以用来在两个有序或无序数组合并之后做去重用) public static List distll(int ar) List list1 = new List(); list1

5、.Add(ar0); for (int i = 0; i ar.Length; i+) int j = 0; while (j 0) Array.Sort(ar); int size = 1; for (int i = 1; i ar.Length; i+) if (ari != ari - 1) size+; int temp = new intsize; int k = 0; tempk+ = ar0; for (int j = 1; j ar.Length; j+) if (arj - 1 != arj) tempk+ = arj; return temp; else return nu

6、ll; 6.字符串比较去重,删除string2中和string1中相同的字符。(是这样子滴:string1=abc,string2=safbhcmnads,那么去重之后我要得到的东西是:string3=sfhmnds)public static List distill(string sta, string stb) List ar = new List(); if (sta = null | sta.Length = 0) for (int l = 0; l stb.Length; l+) ar.Add(stbl.ToString(); return ar; if (stb = null |

7、 stb.Length = 0) return ar; else for (int j = 0; j stb.Length; j+) int i = 0; while (i sta.Length) if (stbj = stai) break; else i+; if (i = sta.Length) ar.Add(stbj.ToString(); return ar; 6.不让你直接用库函数split来实现字符串的分割(比如:用”sp”来分割”goodspmorning”,之后会得到”good morning”) public static string mysplit(string str

8、input, string sp) string tmp = ; int strlen = 0, splen = 0; int found = 0; string rt = null; if (strinput = null | sp = null | strinput.Length = 0) return null; if (sp.Length = 0) return new string strinput ; ArrayList tmp3 = new ArrayList(); strlen = strinput.Length; splen = sp.Length; for (int i =

9、 0; i = 0) tmp = ; tmp = strinput.Substring(i, found - i); tmp3.Add(tmp); i = found + splen - 1; else string tmp2 = ; tmp2 = strinput.Substring(i); if (tmp2 != ) tmp3.Add(tmp2); break; tmp3.TrimToSize(); rt = (string)tmp3.ToArray(typeof(String); tmp3.Clear(); return rt; 7.把一个由数字组成的字符串变成整数(像这样string=

10、”123”变成int型的123(一百二十三) public static int trans(string str) if (str = null | str.Length = 0) return -1; int result = 0; for (int j = 0; j str.Length; j+) if (0 = (strj - 0) & (strj - 0) this.key) if(this.right = null) this.right = node;/node插入的节点 return; else this.right.InsertNode(node); else if(this

11、.left = null) this.left = node; return; else this.left.InsertNode(node); / 二叉查找树查询 public bool SearchKey(int searchValue) if(this.key = searchValue)/searchValue需要查询的值 return true;/ 是否找到查询的值 if(searchValue this.key) if(this.right = null) return false; else return this.right.SearchKey(searchValue); el

12、se if(this.left = null) return false; else return this.left.SearchKey(searchValue); / 中序遍历 public void MiddleDisplay() if(this.left != null) this.left.MiddleDisplay(); Console.WriteLine(this.key); if(this.right != null) this.right.MiddleDisplay(); / 前序遍历 public void FrontDisplay() Console.WriteLine(

13、this.key); if(this.left != null) this.left.FrontDisplay(); if(this.right != null) this.right.FrontDisplay(); / 后序遍历 public void BehindDisplay() if(this.left != null) this.left.BehindDisplay(); if(this.right != null) this.right.BehindDisplay(); Console.WriteLine(this.key); / 二叉查找树 public class Binary

14、SearchTree private BinarySearchTreeNode root; / 生成一个二叉查找树 public BinarySearchTree() root = null; / 生成一个二叉查找树 / 二叉查找树根节点的值 public BinarySearchTree(int nodeValue) root = new BinarySearchTreeNode(nodeValue); / 在二叉查找树上插入一个节点 / 插入节点的值 public void InsertBinarySearchTreeNode(int nodeValue) BinarySearchTree

15、Node insertNode = new BinarySearchTreeNode(nodeValue); if(root = null) root = insertNode; return; else root.InsertNode(insertNode); return; / 在二叉查找树上查询一个数 / 需要查询的值 / 是否找到查询的值 public bool SearchKey(int searchValue) if(root.key = searchValue) return true; else return root.SearchKey(searchValue); / 二叉查

16、找树中序遍历 public void MiddleDisplay() root.MiddleDisplay(); return; / 二叉查找树前序遍历 public void FrontDisplay() root.FrontDisplay(); return; / 二叉查找树后序遍历 public void BehindDisplay() root.BehindDisplay(); return; / 二叉查找树排序 / 需要排序的数组 public static void BinarySearchTreeSort(int a) BinarySearchTree t = new Binar

17、ySearchTree(); for(int i = 0; i a.Length; i +) t.InsertBinarySearchTreeNode(ai); t.MiddleDisplay();return; / 二叉查找树查找 / 进行查找的数组 / 需要查找的树 public static bool BinarySearchTreeSearch(int a, int searchKey) BinarySearchTree t = new BinarySearchTree(); for(int i = 0; i this.n) if(this.Right = null) this.Rig

18、ht = node; else this.Right.Insert(node); else if(this.Left = null) this.Left = node; else this.Left.Insert(node); /递归 public void Show() Console.WriteLine(n); class BinaryTree Node root; public void GenerateTree(Node node) /高内聚,低耦合 if(root = null) root = node; return; /如果树是空,第一次加节点 root.Insert(node)

19、; public void ShowInOrder(Node node) /中序遍历(in order):左中右。先(前)序遍历(pre order):中左右。后序遍历(post order):左右中。 if(node = null) return;/递归必须有个终止条件,递归方法中一定要接受参数 ShowInOrder(node.Left); node.Show(); ShowInOrder(node.Right); public void Show() ShowInOrder(root); class A static void Main() BinaryTree b = new BinaryTree(); Node node = new Node(5); b.GenerateTree(node); node = new Node(13); b.GenerateTree(node); node = new Node(6); b.GenerateTree(node); node = new Node(26); b.GenerateTree(node); node = new Node(7); b.GenerateTree(node); b.Show(); 结果:5,6,7,13,26

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1