最近为了准备找工作,数据结构这块必须得恶补。
首先,一个很基础的东东就是基础排序算法和查找算法了。
这里,先说说排序吧。
为了做好准备工作,在此先弄一个数组生成器吧,把它封装为一个类,同时也为了后续其他的测试提供方便,免得拷贝过来拷贝过去。
一个简单的数组类:
1 | using System; |
第一个要说的排序算法当属冒泡排序算法了,链接里有比较详细的介绍,在此就不罗嗦了。
冒泡排序的基本实现如下:
1 | public void BubbleSort(int []array) |
测试如下:
1 | using System; |
为了展示一下它的实现原理,这里需要稍微修改一下冒泡排序方法,同时得减少一点数据,以便于对比观察。
1 | public void BubbleSort(int []array) |
以下为输出结果:
排序前:
1 7 7 0 5 2 1 3
排序后:
1 7 0 5 2 1 3 7
1 0 5 2 1 3 7 7
0 1 2 1 3 5 7 7
0 1 1 2 3 5 7 7
0 1 1 2 3 5 7 7
0 1 1 2 3 5 7 7
0 1 1 2 3 5 7 7
0 1 1 2 3 5 7 7
0 1 1 2 3 5 7 7
右上可以看到,每一轮排序,每行都会有个数字由前向后想冒泡一样移动,因此这种排序正是得名于像“气泡一样”从序列的一段浮动到另一端。
以上为升序排序,若采用降序排序,则只需稍微改动一点点,即将BubbleSort
方法中的“>”号改为“<”即可。
好了,本篇到此结束!