冒泡排序的小程序
这是我用ArrayList集合类做的小程序,用来展示冒泡排序算法的过程,相关代码和界面如下。
界面:
代码:
[C# Code(WPF)]:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Collections;
namespace SortedEbullition
{
/// <summary>
/// Window1.xaml 的交互逻辑
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
ArrayList arrlist = new ArrayList();
private void additionClick(object sender, RoutedEventArgs e)
{
try
{
string temp = inputNumber.Text;
double addNum = Convert.ToDouble(temp);
arrlist.Add(addNum);
numberList.Text += addNum + "\r\n";
inputNumber.Text = "";
inputNumber.Focus();
}
catch (FormatException fEx)
{
sortedNumber.Text += fEx.Message;
}
catch (InvalidCastException iCe)
{
sortedNumber.Text += iCe.Message;
}
}
private void resetClick(object sender, RoutedEventArgs e)
{
inputNumber.Text = "";
}
private void orderClick(object sender, RoutedEventArgs e)
{
ArrayList temp = SortNumber.sort(arrlist);
/*int length = temp.Count;
for (int i = 0; i < length; i++)
{
sortedNumber.Text += temp[i].ToString()+"\r\n";
}*/
foreach (double arr in temp)
{
sortedNumber.Text += arr.ToString() + "\r\n";
}
}
private void quit_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}
class SortNumber //这个类是冒泡排序的算法过程
{
public static ArrayList sort(ArrayList arrList)
{
int length = arrList.Count;
for (int i = 0; i < length - 1; i++)
{
for (int j = 0; j < length - i - 1; j++)
{
if ((double)arrList[j] > (double)arrList[j + 1])
{
double temp = (double)arrList[j];
arrList[j] = arrList[j + 1];
arrList[j + 1] = temp;
}
}
}
return arrList;
}
}
}
{
/// <summary>
/// Window1.xaml 的交互逻辑
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
ArrayList arrlist = new ArrayList();
private void additionClick(object sender, RoutedEventArgs e)
{
try
{
string temp = inputNumber.Text;
double addNum = Convert.ToDouble(temp);
arrlist.Add(addNum);
numberList.Text += addNum + "\r\n";
inputNumber.Text = "";
inputNumber.Focus();
}
catch (FormatException fEx)
{
sortedNumber.Text += fEx.Message;
}
catch (InvalidCastException iCe)
{
sortedNumber.Text += iCe.Message;
}
}
private void resetClick(object sender, RoutedEventArgs e)
{
inputNumber.Text = "";
}
private void orderClick(object sender, RoutedEventArgs e)
{
ArrayList temp = SortNumber.sort(arrlist);
/*int length = temp.Count;
for (int i = 0; i < length; i++)
{
sortedNumber.Text += temp[i].ToString()+"\r\n";
}*/
foreach (double arr in temp)
{
sortedNumber.Text += arr.ToString() + "\r\n";
}
}
private void quit_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}
class SortNumber //这个类是冒泡排序的算法过程
{
public static ArrayList sort(ArrayList arrList)
{
int length = arrList.Count;
for (int i = 0; i < length - 1; i++)
{
for (int j = 0; j < length - i - 1; j++)
{
if ((double)arrList[j] > (double)arrList[j + 1])
{
double temp = (double)arrList[j];
arrList[j] = arrList[j + 1];
arrList[j + 1] = temp;
}
}
}
return arrList;
}
}
}