返回首页
当前位置: 主页 > 网络编程 > .Net实例教程 >

【C#】[算法]冒泡排序 代码

时间:2013-05-10 23:08来源:2018年最新注册送彩金www.zhixing123.cn 编辑:麦田守望者

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace 冒泡排序算法
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();
}
/*
算法:冒泡法
问题:无序数排列
问题描述:有一组无序排列的整数,通过算法计算使它们成为从小到大依次排列?
问题分析:
首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则交换两记录的值。
然后比较第二个和第三个记录的关键字,依次类推,直至最后一个记录也进行过比较。
上述过程称为第一趟冒泡排序,其结果是最大值被安置到最后一个记录的位置上。
进行第二趟排序,对前N-1个记录进行同样的排序。
依次类推,当进行完N-1趟排序后,所有记录有序排列。
备注
*/

int[] s = new int[10];//存放要排序的数

//窗体载入
private void Form1_Load(object sender, EventArgs e)
{
button2_Click(sender, e);//执行按钮2的事件,取随机数
}

//取随机数
private void button2_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();//清空列表
Random r = new Random();//随机数种子
for (int i = 0; i <10; i++)
{
s[i] = r.Next(100);//产生10个随机数填入数组
listBox1.Items.Add(s[i].ToString());//随机数填入控件
}


}
//排序
private void button1_Click(object sender, EventArgs e)
{
listBox2.Items.Clear();//清空列表

for (int i = 0; i <= s.Length; i++)//第一层循环
{
for (int j = i+1; j < s.Length; j++)//第二层循环
{
if (s[i] > s[j])//按升序交换位置,数大的在后面
{
int k;//中间变量
k = s[j];
s[j] = s[i];
s[i] = k;
}
}

}
//把排序后的数组循环添加到窗体控件上
for (int i = 0; i < 10; i++)
{
listBox2.Items.Add(s[i].ToString());
}
}


}
}

顶一下
(0)
0%
踩一下
(0)
0%
标签(Tag):C# C#实例教程 c#基础教程 C#源代码 c#技巧
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
博聚网