欢迎来到山村网

数据结构C#实例教程:冒泡排序算法

2019-03-02 14:10:06浏览:340 来源:山村网   
核心摘要:  由于这本书我发现的错误较多,感觉质量不是很好,所以大家在看的时候一定要注意。好了,我们继续这个系列,今天主要是将排序

  由于这本书我发现的错误较多,感觉质量不是很好,所以大家在看的时候一定要注意。好了,我们继续这个系列,今天主要是将排序算法中最简单的冒泡排序。所谓冒泡排序就是在每一次排序的过程中总有一个最大的值被移动到后面,值小的就像水泡一样浮到水面。下面我们就看一下代码,重要的地方都有注释,大家可以看注释。

  1 class SortingAlgorithms

  2 {

  3 private int[] arr;

  4 private int upper;

  5 private int numElement;

  6

  7 //初始化数组

  8 public SortingAlgorithms(int size)

  9 {

  10 arr = new int[size];

  11 upper = size - 1;

  12 numElement = 0;

  13 }

  14

  15 //给数组插入元素

  16 public void Insert(int item)

  17 {

  18 arr[numElement] = item;

  19 numElement++;

  20 }

  21

  22 //打印数组元素

  23 public void DisplayElement()

  24 {

  25 for (int i = 0; i <= upper; i++)

  26 {

  27 Console.WriteLine(arr[i] + " ");

  28 }

  29 Console.ReadLine();

  30 }

  31

  32

  33 //冒泡排序

  34 public void BubbleSort()

  35 {

  36 int Temp;

  37 //外循环是限制一次冒泡排序比较的元素个数

  38 for (int Outer = upper; Outer >= 1; Outer--)

  39 {

  40 //一次冒泡排序比较0~ourter-1个元素的大小

  41 for (int Inner = 0; Inner <= Outer-1; Inner++)

  42 {

  43 //排序过程

  44 if (arr[Inner] > arr[Inner + 1])

  45 {

  46 Temp = arr[Inner];

  47 arr[Inner] = arr[Inner + 1];

  48 arr[Inner + 1] = Temp;

  49 }

  50 }

  51 }

  52 //this.DisplayElement();

  53 }

  54

  55 }

  56

  57一下是调用算法的过程:

  58 static void Main(string[] args)

  59 {

  60 SortingAlgorithms MyArray = new SortingAlgorithms(10);

  61 Random rnd = new Random(100);

  62 for (int i = 0; i < 10; i++)

  63 {

  64 MyArray.Insert((int)(rnd.NextDouble()*100));

  65 }

  66 Console.WriteLine("Before Sorting:");

  67 MyArray.DisplayElement();

  68 //进行排序

  69 MyArray.BubbleSort();

  70 Console.WriteLine("After sorting");

  71 //打印排序后的元素

  72 MyArray.DisplayElement();

  73 }

:更多精彩教程请关注山村设计教程 栏目,

(责任编辑:豆豆)
下一篇:

计算机等级考试将毫秒转化为日期

上一篇:

在Python中使用glob模块查找文件路径的方法

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com