C#版的冒泡排序算法

排序|算法

 参加多次笔试,居然有几次都考到了冒泡算法,一次是C#版的填空,一次是javascript版的全部写出。虽然每次都凭着对冒泡法的理解给弄出来的,但是多多少少与标准模式有点差别,在网上搜了一下关于C#版的冒泡算法,没找到满意的,自己对照算法模式认真写了一个C#版的,已经测试成功。

  public void BubbleSort(int[] R)
  {
   int i,j,temp; //交换标志

   bool exchange;

   for(i=0; i   {
   exchange=false; //本趟排序开始前,交换标志应为假

   for(j=R.Length-2; j>=i; j--)
   {
   if(R[j+1]   {
    temp=R[j+1];
    R[j+1]=R[j];
    R[j]=temp;

    exchange=true; //发生了交换,故将交换标志置为真
   }
   }

   if(!exchange) //本趟排序未发生交换,提前终止算法
   {
   break;
   }
   }
  }

时间: 2024-09-13 20:59:21

C#版的冒泡排序算法的相关文章

冒泡排序算法及Ruby版的简单实现_ruby专题

算法原理: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复以上的步骤,除了最后一个. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较. 实现假设有这样一个数组: [4, 1, 3, 2] 冒泡排序为从第一个数开始,吧这个数与后面的数比较,如果这个数比后面的大,就交换他们的位置. 比如,第一次比较4和1,发现4比1大,交换 -> [1, 4, 3,

js交换排序 冒泡排序算法(Javascript版)_javascript技巧

比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复以上的步骤,除了最后一个. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较. function sort(elements){ for(var i=0;i<elements.length-1;i++){ for(var j=0;j<elements.length-i-1;j++){ if(elemen

C#冒泡排序算法,调试不通过,求大神

问题描述 C#冒泡排序算法,调试不通过,求大神 今天老师布置个冒泡排序法的作业,用C#做.弄了很久,就是不能实现如下结果.求求大神棒棒我,帮我调好代码,今天就要交作业,痛苦啊.可以打开下面地址直接调制代码: http://www.manonggu.com/biancheng/12 调试好了,可以保存,然后分享地址小窗口发给我,必有重谢!! 我这边继续做下一个作业.帮帮我啊 解决方案 前面那位仁兄的代码我改了一下,这样应该能过了 public void BubbleSort() { int tem

Objective-C实现冒泡排序算法的简单示例_IOS

简介冒泡算法是一种基础的排序算法,这种算法会重复的比较数组中相邻的两个元素.如果一个元素比另一个元素大(小),那么就交换这两个元素的位置.重复这一比较直至最后一个元素.这一比较会重复n-1趟,每一趟比较n-j次,j是已经排序好的元素个数.每一趟比较都能找出未排序元素中最大或者最小的那个数字.这就如同水泡从水底逐个飘到水面一样.冒泡排序是一种时间复杂度较高,效率较低的排序方法.其空间复杂度是O(n). 1, 最差时间复杂度 O(n^2) 2, 平均时间复杂度 O(n^2) 实现思路1,每一趟比较都

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

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

冒泡排序算法 递归算法,求n的阶乘 求最大公约数和最小公倍数 java分解质因数

   1.  /**     2.  * 冒泡排序算法     3.  */      4. public class BubbleSort {      5.     public static void sort(int[] values) {      6.         int temp;      7.         for (int i = 0; i < values.length; ++i) {      8.             for (int j = 0; j <

c语言中的冒泡排序算法

问题描述 c语言中的冒泡排序算法 直接上代码,图: #include #include #include typedef struct{ int*pt; int cur; int len; }intArr; void bubblesort(intArr*ia){ int i,j,t,n=ia->cur; for(i=n;i>2;i--) for(j=1;j if(ia->pt[j]>ia->pt[j-1]){ t=ia->pt[j-1]; ia->pt[j-1]=

asp.net c#冒泡排序算法实现代码

1.用第三个变量值交换 int a = 1; int b = 2; int c = a; a = b; b = c; 2.用加减法交换 a = a + b; b = a - b; a = a - b; 或 a = a - b; b = a + b; a = b - a;3.用异或(XOR)法交换  a = a ^ b;  b = a ^ b;  a = a ^ b;详细可看codeproject上一篇文章 <<神奇的异或 The Magical Exclusive OR (XOR)>&g

Java实现冒泡排序算法及对其的简单优化示例_java

原理 冒泡排序大概是所有程序员都会用的算法,也是最熟悉的算法之一. 它的思路并不复杂: 设现在要给数组arr[]排序,它有n个元素. 1.如果n=1:显然不用排了.(实际上这个讨论似乎没什么必要) 2.如果n>1: (1)我们从第一个元素开始,把每两个相邻元素进行比较,如果前面的元素比后面的大,那么在最后的结果里面前者肯定排在后面.所以,我们把这两个元素交换.然后进行下两个相邻的元素的比较.如此直到最后一对元素比较完毕,则第一轮排序完成.可以肯定,最后一个元素一定是数组中最大的(因为每次都把相对