数据结构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 //冒泡排序

  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 }

时间: 2024-11-01 13:29:18

数据结构C#实例教程:冒泡排序算法的相关文章

C语言创建和操作单链表数据结构的实例教程_C 语言

1,为什么要用到链表 数组作为存放同类数据的集合,给我们在程序设计时带来很多的方便,增加了灵活性.但数组也同样存在一些弊病.如数组的大小在定义时要事先规定,不能在程序中进行调整,这样一来,在程序设计中针对不同问题有时需要3 0个大小的数组,有时需要5 0个数组的大小,难于统一.我们只能够根据可能的最大需求来定义数组,常常会造成一定存储空间的浪费. 我们希望构造动态的数组,随时可以调整数组的大小,以满足不同问题的需要.链表就是我们需要的动态数组.它是在程序的执行过程中根据需要有数据存储就向系统要求

php数组冒泡排序算法实例_php技巧

本文实例讲述了php数组冒泡排序算法.分享给大家供大家参考,具体如下: <?php /*@冒泡排序算法 */ $array=array(5,45,22,11,32,28,35,56,17,21,92); $len=count($array);//计算数组长度 for($i=0;$i<$len-1;$i++){//需要比较$len-1轮,每一轮需要比较$len-1次 for($j=0;$j<$len-1;$j++){//需要比较$len-1次,因为循环到最后一个数时,后面没有数可以比较了,

又一个PHP实现的冒泡排序算法分享_php实例

经典的冒泡排序法一直是许多程序沿用的其中一种排序法,话说冒泡排序法在效率上比PHP系统函数sort更高效.本章不讨论性能,所以就不拿它来跟系统性能做对比了. 冒泡排序大概的意思是依次比较相邻的两个数,然后根据大小做出排序,直至最后两位数.由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序.但其实在实际过程中也可以根据自己需要反过来用,大树往前放,小数往后放. <?php /** * PHP中的冒泡排序法使用 */ // 预先声明一个数组 $arr = array (1

Java实现选择排序算法的实例教程_java

选择排序概念 选择排序也是一种交换排序算法,和冒泡排序有一定的相似度,因此个人认为选择排序可以视为冒泡排序的一种改进算法.它的思路是这样的: 设现在要给数组arr[]排序,它有n个元素. 1对第一个元素(Java中,下标为0)和第二个元素进行比较,如果前者大于后者,那么它一定不是最小的,但是我们并不像冒泡排序一样急着交换.我们可以设置一个临时变量a,存储这个目前最小的元素的下标.然后我们把这个目前最小的元素继续和第三个元素做比较,如果它仍不是最小的,那么,我们再修改a的值.如此直到和最后一个元素

C#操作GridView控件实例教程

什么是GridView控件?这段是来自百度百笠的:GridView 是 DataGrid的后继控件,在.net framework 2 中,虽然还存在DataGrid,但是GridView已经走上了历史的前台,取代DataGrid的趋势已是势不可挡.GridView和DataGrid功能相似,都是在web页面中显示数据源中的数据,将数据源中的一行数据,也就是一条记录,显示为在web页面上输出表格中的一行. 数据来源自一个XML文件,如果我们不知道如何操作XML数据,文章后面我们会补充. 1.XM

mysql Replace INTO 实例教程

mysql Replace INTO 实例教程 Replace INTO和INSERT INTO的区别,我和他说晚上上我的blog看吧,那时候还在忙,现在从MYSQL手册里找了点东西,MYSQL手册里说REPLACE INTO说的还是比较详细的. REPLACE的运行与INSERT很相像.只有一点除外,如果表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除.请参见13.2.4节,"INSERT语法". 注意,除

mysql replace 实例教程

mysql replace 实例教程 昨天因为导入 数据时一条数据出来了,后面就想到用update 与replace结合作操哦, update tablename set fields=replace('aa','bb',str) where Replace INTO和INSERT INTO的区别,我和他说晚上上我的blog看吧,那时候还在忙,现在 从MYSQL手册里找了点东西,MYSQL手册里说REPLACE INTO说的还是比较详细的. REPLACE的运行与INSERT很相像.只有一点除外

Windows 8实例教程系列 - 数据绑定基础实例

原文:Windows 8实例教程系列 - 数据绑定基础实例   数据绑定是WPF,Silverlight以及Windows Phone应用开发中最为常用的开发技术,在基于XAML的Windows Store应用开发中,数据绑定是其开发特性之一,本文将讨论Windows 8应用开发数据绑定的使用. 快速理解数据绑定(Data Binding) 对于应用开发人员而言,无论是应用界面还是应用逻辑往往是为了简化用户对于数据层的操作,通过应用控件实现数据同步更新是最直接最简单的.但是在实际项目开发中,复杂

sql入门教程:SQL ROUND() 实例教程

sql入门教程:SQL ROUND() 实例教程 round ( )函数 round ( )函数是用来一轮数字领域的一些具体小数. 数据库round ( )语法 SELECT ROUND(column_name,decimals) FROM table_name 好下面我们来看看数据结构 Parameter Description column_name Required. The field to round. decimals Required. Specifies the number o