排序 小结
摘要:本文介绍的排序算法有:冒泡排序,选择排序,插入排序,归并排序,希尔排序,堆排序,快速排序,计数排序,基数排序,桶排序。包括定义描述、排序过程、复杂度和代码实现(如有错误,请指正 Thanks)。概念:排序稳定:如果两个数相同,对他们进行的排序结果为他们的相对顺序不变。原地排序:原地排序就是指不申请多余的空间来进行的排序,就是在原来的排序数据中比较和交换的排序。例如快速排序,堆排序等都是原地排序,合并排序,计数排序等不是原地排序。冒泡排序 [Bubble Sort] 依次比较相邻的两个数,将小数放在前面,大数放在后面。 复杂度: 最差时间复杂度[O(n^2)],最优时间复杂度[O(n)],...
阅读全文
posted @
2011-08-28 15:19
PeterZhang
阅读(1563)
推荐(11)
全排列
摘要:#region /// <summary> /// 全排列 递归 考虑重复 /// Peter /// </summary> public static String[] Permutation(String s) { if (s.Length == 1) { String[] res = new String[1]; res[0] = s; return res; ...
阅读全文
posted @
2010-07-27 14:34
PeterZhang
阅读(1711)
推荐(0)
数据结构——单链表
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace CSDN_Testing{ #region //@Author: Peter //@Date: 7/26/2010 #endregion #region /// <summary> /// The definition of the node, and the link is composed of node. /// There are two fields in...
阅读全文
posted @
2010-07-26 20:56
PeterZhang
阅读(1531)
推荐(0)
算法 题目收集
摘要:1、将一整数逆序后放入一数组中(要求递归实现) class Program { public List<Int32> list = new List<Int32>(); public void Reverse(Int32 i) { if (i < 10) { list.Add(i); } else { list.Add(i % 10); Rev...
阅读全文
posted @
2010-07-23 16:06
PeterZhang
阅读(1441)
推荐(1)
表达式求值
摘要:中缀表达式到后缀表达式的转换 要把表达式从中缀表达式的形式转换成用后缀表示法表示的等价表达式,必须了解操作符的优先级和结合性。优先级或者说操作符的强度决定求值顺序;优先级高的操作符比优先级低的操作符先求值。 如果所有操作符优先级一样,那么求值顺序就取决于它们的结合性。操作符的结合性定义了相同优先级操作符组合的顺序(从右至左或从左至右)。 转换过程包括用下面的算法读入中缀表达式的操作数、操作符和括号:1. 初始化一个空堆栈,将结果字符串变量置空。2. 从左到右读入中缀表达式,每次一个字符。3. 如果字符是操作数,将它添加到结果字符串。4. 如果字符是个操作符,弹出(pop)操作符,直至遇见开括.
阅读全文
posted @
2010-07-20 17:52
PeterZhang
阅读(2858)
推荐(1)