C#实现冒泡排序算法的代码示例

 更新时间:2016年07月01日 09:45:27   作者:Anonymity  
冒泡排序即是对数组每次轮循出最大数或最小数放在队尾,这里我们来看一下C#实现冒泡排序算法的代码示例,需要的朋友可以参考下

1、原理:从数组的第一个位置开始两两比较array[index]和array[index+1],如果array[index]大于array[index+1]则交换array[index]和array[index+1]的位置,止到数组结束;
从数组的第一个位置开始,重复上面的动作,止到数组长度减一个位置结束;
从数组的第一个位置开始,重复上面的动作,止到数组长度减二个位置结束;
。。。。
2、时间复杂度:O(N²),进行了(n-1)*(n-2)....=n*(n-1)/2次比较和约比较次数一半的交换次数(均况下),那么根据大O表示法时间复杂度为O(N^2)
3、代码示例:

using System;
namespace MySort
{
  //先建立一个类,以后把所有排序方法都放到这个类里,
  public class SumSort
  {
    //冒泡排序方法,从小到大排,虽然很多冒泡排序都是从大到小,
    //可是我就想这么排,你能怎么着我。
    public void PopSort(int[] list)
    {
      int i, j, temp;  //先定义一下要用的变量
      for (i = 0; i < list.Length - 1; i++)
      {
        for (j = i + 1; j < list.Length; j++)
        {
          if (list[i] > list[j]) //如果第二个小于第一个数
          {
            //交换两个数的位置,在这里你也可以单独写一个交换方法,在此调用就行了
            temp = list[i]; //把大的数放在一个临时存储位置
            list[i] = list[j]; //然后把小的数赋给前一个,保证每趟排序前面的最小
            list[j] = temp; //然后把临时位置的那个大数赋给后一个
          }
        }
      }
    }
  }
  public class test
  {
    //这里给一组测试数据,打印输出看看排序方法的效果如何
    static void Main()
    {
      int[] arr = { 1, 4, 2, 43, 5, 61, 89, 34, 67, 32, 40 };
      //把数据排序类实例化一下,然后调用方法。
      //什么?还要实例,可我不想实例化怎么办?
      //那也没有关系,把PopSort方法前加一个static,直接调用SumSort.PopSort(arr)就好了
      SumSort mysort = new SumSort();
      //来来来,大家按高矮排个队,矮的排前面高的排后面
      mysort.PopSort(arr);
      //真听话,看看大家都排第几位了
      for (int i = 0; i < arr.Length; i++)
      {
        Console.Write("第{0}位是{1}\n", i + 1, arr[i]);
      }
      Console.WriteLine();
    }
  }
}

 

相关文章

  • c# xml API操作的小例子

    c# xml API操作的小例子

    这篇文章主要介绍了c# xml API操作的小例子,有需要的朋友可以参考一下
    2013-12-12
  • 如何在C#中使用指针

    如何在C#中使用指针

    这篇文章主要介绍了如何在C#中使用指针,文中代码简单易懂,帮助大家更好的工作和学习,感兴趣的朋友快来了解下
    2020-06-06
  • 解析c#显示友好时间的实现代码

    解析c#显示友好时间的实现代码

    本篇文章是对c#中显示友好时间的实现代码进行了介绍,需要的朋友参考下
    2013-05-05
  • C# 字符串与unicode互相转换实战案例

    C# 字符串与unicode互相转换实战案例

    这篇文章主要介绍了C# 字符串与unicode互相转换实战案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • C#实现剪刀石头布游戏

    C#实现剪刀石头布游戏

    这篇文章主要为大家详细介绍了C#实现剪刀石头布游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • C#连接数据库和更新数据库的方法

    C#连接数据库和更新数据库的方法

    这篇文章主要介绍了C#连接数据库和更新数据库的方法,需要的朋友可以参考下
    2015-08-08
  • C#多线程系列之线程通知

    C#多线程系列之线程通知

    本文详细讲解了C#多线程中的线程通知,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • C#中获取文件大小问题

    C#中获取文件大小问题

    这篇文章主要介绍了C#中获取文件大小问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • C# 串口接收数据中serialPort.close()死锁的实例

    C# 串口接收数据中serialPort.close()死锁的实例

    下面小编就为大家分享一篇C# 串口接收数据中serialPort.close()死锁的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • C#命令行参数解析库System.CommandLine使用

    C#命令行参数解析库System.CommandLine使用

    System.CommandLine是一个基于.Net Standard 2.0的命令行参数解析库,该项目还是属于beta状态,期待以后的正式版本,文章通过示例代码给大家介绍了System.CommandLine使用讲解,感兴趣的朋友一起看看吧
    2021-06-06

最新评论