数据结构
无缘浪子党
愿你出走半生,归来仍是少年
展开
-
快速排序Java
快速排序算法思想:基于分治的思想,是冒泡排序的改进型。首先在数组中选择一个基准点(该基准点的选取可能影响快速排序的效率,后面讲解选取的方法),然后分别从数组的两端扫描数组,设两个指示标志(lo指向起始位置,hi指向末尾),首先从后半部分开始,如果发现有元素比该基准点的值小,就交换lo和hi位置的值,然后从前半部分开始扫秒,发现有元素大于基准点的值,就交换lo和hi位置的值,如此往复循环,直到lo&...转载 2018-04-05 21:02:34 · 118 阅读 · 0 评论 -
快速排序java和python
理:比较两个相邻的元素,将值大的元素交换至右端。思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。举例说明:要排序数组:int[] arr={6,3,8,2,9,1}; 第一趟排序: 第...转载 2018-04-05 22:13:35 · 118 阅读 · 0 评论 -
不可表示的数[x/2] + y + x * y(英雄会)
给定表达式[x/2]+ y + x * y, 其中x,y都是正整数。其中的中括号表示下取整,例如[3/2] = 1 , [5/2] = 2。 有些正整数可以用上述表达式表达出来,例如正整数2,当取x = y = 1时,可以把2表达出来 (解释下:当x=y=1时, [x / 2] + y + x * y = [1 / 2] + 1 + 1 * 1= 0+1+1 = 2 ); 有些数可以转载 2013-12-24 17:01:47 · 690 阅读 · 0 评论 -
常用算法经典代码(C++版)
一、快速排序 void qsort(int x,int y) //待排序的数据存放在a[1]..a[n]数组中 {int h=x,r=y; int m=a[(x+y)>>1]; //取中间的那个位置的值 while(h<r) {while (a[h]<m) h++; //比中间那个位置的值小,循环直到找一个比中间那个值大的转载 2013-12-27 14:17:47 · 711 阅读 · 0 评论 -
解析对应的XML文件(英雄会)
#include #include #include #include #include #include using namespace std; enum FSM{FSM_NULL, FSM_START, FSM_LevelOne, FSM_LevelTwo}; void dealAbstract(string &out, string &in转载 2013-12-24 14:22:10 · 615 阅读 · 0 评论