当前位置: 首页 > 知识库问答 >
问题:

在文本框中显示排序数组

江向阳
2023-03-14

我想在单击按钮后在textBox中显示我的排序数组。我有两个类和一个接口。第一类生成随机数并在textbox1中显示,第二类进行冒泡排序,而我不能在texbox上显示排序数组。

头等舱:

public class RandomArray     
{
    static readonly Random generator = new Random();
    /// <summary>
    /// here are the random numbers stored
    /// </summary>
    int[] array;
    /// <summary>
    /// store the min, max used to generate the data
    /// </summary>
    readonly int min, max;
    /// <summary>
    /// Constructor only needs how the value limits
    /// </summary>
    /// <param name="min">The minimum value (typical 0)</param>
    /// <param name="max">The maximum value (example 100)</param>
    public RandomArray(int min, int max)
    {
        this.min=min;
        this.max=max;
        this.array=new int[0];
    }
    /// <summary>
    /// Fills the array with random numbers
    /// </summary>
    /// <param name="count">The number of data to generate</param>
    public void Fill(int count)
    {
        this.array=new int[count];
        // fill array with random integers
        for (int i=0; i<array.Length; i++)
        {
            array[i]=generator.Next(min, max);
        }
    }        
    /// <summary>
    /// Copy constructor if needed (optional)
    /// </summary>
    /// <param name="other">A RandomArray to copy the data from</param> 
    public RandomArray(RandomArray other)
    {
        this.min=other.min;
        this.max=other.max;
        this.array=(int[])other.array.Clone();
    }
    /// <summary>
    /// Provide the data
    /// </summary>

    public int[] Array { get { return array; } }
    /// <summary>
    /// Provide the limits used
    /// </summary>

    public int Min { get { return min; } }
    public int Max { get { return max; } }
    /// <summary>
    /// Creates a comma separated list of numbers like <c>[45,32,64,..]</c>
    /// </summary>
    public string ToStringList()
    {
        string[] parts=new string[array.Length];
        for (int i=0; i<parts.Length; i++)
        {
            parts[i]=array[i].ToString();
        }
        return "["+string.Join(",", parts)+"]";
    }
    /// <summary>
    /// Shows only the limits used
    /// </summary>
    public override string ToString()
    {
        return string.Format("RandomArray({0},{1})", min, max);
    }
<!-- language: none-->

这是气泡排序

class BubbleSort :  ISortAlgorithm<int>
{
   public void Sort (int[] array)     
    {
        int temp;
        for (int j = 1; j <= array.Length - 2; j++)
        {
            for (int i = 0; i <= array.Length - 2; i++)
            {
                if (array[i] > array[i + 1])
                {
                    temp = array[i + 1];
                    array[i + 1] = array[i];
                    array[i] = temp;
                }
            }
        }
    }

等差算法:

interface ISortAlgorithm<T>
{
    void Sort(T[] array);
}

最后一件事是请求TextBox:

private void button2_Click(object sender, EventArgs e)
{            
    BubbleSort p = new BubbleSort();
    textBox1.Text = p.ToString();
}

是否重写bubblesort方法?或者怎样?我几乎什么都试过了。Thanskd和问候。

共有1个答案

曾山
2023-03-14

1)您需要将数组保留在bubblesort类中,以便按您的方式使用它

class BubbleSort :  ISortAlgorithm<int>
{
   private int[] myArray;
   public void Sort (int[] array)     
    {
        myArray = array;
        int temp;
        for (int j = 1; j <= array.Length - 2; j++)
        {
            for (int i = 0; i <= array.Length - 2; i++)
            {
                if (array[i] > array[i + 1])
                {
                    temp = array[i + 1];
                    array[i + 1] = array[i];
                    array[i] = temp;
                }
            }

        }

    }

    public override string ToString()
    {
        StringBuilder sb = new StringBuilder();
        foreach(int i in myArray)
        {
            sb.Append(Convert.ToString(i));
        }
        return sb.ToString();
    }
 类似资料:
  • 请帮助我,因为我是java脚本的新手。我想显示一个文本文件的数据,它在“D:\vikas.txt”路径到一个文本框。如果有人能提供我一个完整的代码,这将是非常有帮助的。我使用的是谷歌chrome浏览器。如果你需要任何其他信息,请告诉我。 谢谢

  • 问题内容: 在最近的几天里,我试图从SQL表中获取数据并将其放入文本框。 表名称:“检查”。 我正在使用的代码: 结果我什么也没得到。有人知道为什么吗?也许我没有正确调用SQL? 问题答案: 一些评论: 不要使用,仅指定您需要的字段 使用-更少的代码,保证处理 我假设这是一个测试程序,否则在循环中将其重置为无意义

  • 数据显示在logcat中,但不显示在文本视图中。我能做什么 这是我的日志

  • 假设我有一个二维像素网格(4乘4像素)——我有一个和我草图一样大小的图像,它被切割成16个部分。现在我将所有16个部分加载到一个数组中。我想依次将这个数组映射到2D网格上,这样我的整体图像就可以再次正确地组合在一起。也就是说,左上角图像0.png右下角图像16.png. 我就是找不到能让我这么做的公式。例如,我知道使用可以在所有像素中运行,从左上到右下,所以我试过了。如果没有它就不能正确地坐在一起

  • 我想使文本编辑器显示显示在屏幕的左侧 如图所示,在编辑文本中写入的行数显示为1、2、3等 我也希望当用户向上或向下滚动的行数也滚动。提前致谢

  • 问题内容: 刚开始学习Swift并创建了一个小小的macOS应用程序,我想在其中使用a 来显示属性字符串。我试过了: 但这似乎不起作用。感到困惑,因为对a进行完全相同的操作就像一种魅力。 我在这里想念什么? 问题答案: 似乎Xcode的早期beta版本(带有Swift)具有这种出口的严重问题(如您在此处看到:http : //swiftwtf.tumblr.com/post/88387419568