Gear.Turbo

C#冒泡排序

昨天把快速排序造出来了,把其它的排序也再复习一下吧,呵呵: )
冒泡排序
所谓冒泡,就是在水中垂直排列着一排大小顺序错乱的气泡,现在要求他们从大(小)到(大)排好队。于是众气泡们商量出了一条规则以便有规矩而不慌乱的排好顺序。据其中一气泡透露消息,它们的规则是这样的:
从最底下的气泡开始往上浮动,如若碰到上面的气泡比它小,就对它说:兄弟,对不住了,您小,不能在上面,咱俩必须换个位置。一番交涉之后,气泡上升了,并继续着同样的使命。当碰到上面的兄弟比它大的时候, 没办法,游戏有游戏的规则,人生有人生的轨迹,气泡有气泡的规矩,只能对上面的仁兄说:老兄,我的使命结束了,后面的路程你替我走好!等到第一个气泡冒到最上面的时候,第一个轮回结束了,它们不再“群泡无首”,“混沌”的气泡世界也开始了有序的端倪,最大的气泡也占据了第一的宝座。阿Q在临死的时候说过,20年后老子还是条好汉,阿Q或者鲁迅大师认为人生20年一个轮回。而气泡的第一个轮回刚刚结束,下一个轮回便接踵而至,每一个气泡都充满活力的开始了新一个轮回的“气泡奋斗”。经过n个轮回的奋斗,气泡都找到了各自的归属,气泡世界的“熵”值达到了最小,一切变的多么有序而美好!
呵呵,胡侃一番: )鸡蛋与西红柿一并奉与难得逛于此的读者。好了代码如下(关于代码的解释见如上所述):
using System;

namespace BubbleTest
{
    
class Bubble
    {
        
public void sort (int[] data)
        {
            
int high = data.Length - 1;
            
for (int j = 0; j < high; j++)
            {
                
for (int i = 0; i < high - j; i++)
                {
                    
if (data[i] > data[i + 1])
                    {
                        
int t = data[i];
                        data[i] 
= data[i + 1];
                        data[i 
+ 1= t;
                    }
                }
            }

        }
    }
    
class Program
    {
        
static void Main(string[] args)
        {
            
const int len = 10;
            
int[] data = new int[len];
            Random rnd 
= new Random();
            
for (int i = 0; i < len; i++)
            {
                data[i] 
= rnd.Next(100);
                Console.Write(
"{0}\t", data[i]);
            }
            Console.WriteLine(
"--------------------------------------------------------------------------");
            Bubble bs 
= new Bubble();
            bs.sort(data);
            
for (int i = 0; i < len; i++)
                Console.Write(
"{0}\t", data[i]);
            Console.Read();
        }
    }
}

posted on 2006-12-28 00:47  lsp  阅读(596)  评论(2)    收藏  举报

导航