简单介绍C#冒泡排序

开发 后端
本文介绍所谓C#冒泡排序就是在每一次排序的过程中总有一个最大的值被移动到后面,值小的就像水泡一样浮到水面。

今天主要是将排序算法中最简单的C#冒泡排序。所谓C#冒泡排序就是在每一次排序的过程中总有一个最大的值被移动到后面,值小的就像水泡一样浮到水面。下面我们就看一下代码,重要的地方都有注释,大家可以看注释。

C#冒泡排序代码:

  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. public void BubbleSort()  
  34. {  
  35. int Temp;  
  36. //外循环是限制一次冒泡排序比较的元素个数  
  37. for (int Outer = upper; Outer >= 1; Outer--)  
  38. {  
  39. //一次冒泡排序比较0~ourter-1个元素的大小  
  40. for (int Inner = 0; Inner <= Outer-1; Inner++)  
  41. {  
  42. //排序过程  
  43. if (arr[Inner] > arr[Inner + 1])  
  44. {  
  45. Temp = arr[Inner];  
  46. arr[Inner] = arr[Inner + 1];  
  47. arr[Inner + 1] = Temp;  
  48. }  
  49. }  
  50. }  
  51. //this.DisplayElement();  
  52. }  
  53.  
  54. }  
  55.  
  56. 一下是调用算法的过程:  
  57. static void Main(string[] args)  
  58. {  
  59. SortingAlgorithms MyArray = new SortingAlgorithms(10);  
  60. Random rnd = new Random(100);  
  61. for (int i = 0; i < 10; i++)  
  62. {  
  63. MyArray.Insert((int)(rnd.NextDouble()*100));  
  64. }  
  65. Console.WriteLine("Before Sorting:");  
  66. MyArray.DisplayElement();  
  67. //进行排序  
  68. MyArray.BubbleSort();  
  69. Console.WriteLine("After sorting");  
  70. //打印排序后的元素  
  71. MyArray.DisplayElement();  
  72. }  

【编辑推荐】

  1. 简单介绍C#预处理
  2. 学习C#无词尾符号经验谈
  3. C#调用QuickTest自动化
  4. 详解C#正规表达式
  5. C#字符串插入html标签
责任编辑:佚名 来源: IT168
相关推荐

2009-09-10 16:30:11

C#排序函数

2009-09-02 17:16:01

冒泡排序

2009-08-07 17:41:40

C#预处理

2009-08-14 17:27:56

C#方法参数

2009-08-27 10:19:22

C#匿名类型

2009-08-21 17:55:52

C#复合控件

2009-08-18 17:37:57

C#固定指针

2009-08-06 14:53:41

C# User类

2009-08-07 17:12:07

C# DLL函数

2009-08-25 13:38:35

C# Timer组件

2009-09-03 09:40:57

C#创建表单

2009-08-06 18:15:13

C# SQL Serv

2009-08-13 17:36:54

编译C#代码

2009-09-01 16:19:57

C# new()约束

2009-08-14 16:46:44

C#元数据

2009-08-20 16:25:59

C# 匿名方法

2009-08-03 17:51:43

C#引用类型

2009-08-25 14:42:41

由C++转向C#

2009-08-07 09:29:22

C#数组C#函数

2009-09-07 10:48:53

C#数据类型
点赞
收藏

51CTO技术栈公众号