显示每个循环迭代输出在 android studio

发布时间: 2016/11/3 20:03:49
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想证明插入排序由触发 button 单击。显示在输出中排序的所有步骤。

输入的整数单个数字 0-9。

有人能帮我即兴创作我的代码 ! 帮助,将不胜感谢。

O/p 显示大括号和昏迷因为其数组。 O/p 没有大括号和昏迷吗 !? 而 o/p [3,5,7,9] 不是它应像-3 5 7 9

    public void btnClickMe(View v) {
    Button button = (Button) findViewById(R.id.button);
    EditText et = (EditText) findViewById(R.id.editText);
    TextView tv = (TextView) findViewById(R.id.textView2);
    insertionSort();
}
public void insertionSort(){
    EditText et = (EditText) findViewById(R.id.editText);
    String text = et.getText().toString();
    String txt1 = text.replaceAll(","," ");
    String txt= txt1.replaceAll(" ","");
    int[] array = new int[txt.length()];
    for (int i = 0; i < txt.length(); i++){
        array[i] = Character.getNumericValue(txt.charAt(i));
    }
    TextView tv = (TextView) findViewById(R.id.textView2);
    tv.setText("Output:");
    for (int j = 1; j < array.length; j++){
        int key = array[j];
        int i = j - 1;
        while ((i > -1) && (array[i] > key)){
            array[i + 1] = array[i];
            i--;
        }
    }
    array[i + 1] = key;
    tv.append(Arrays.toString(array).replaceAll(",","")+"\n");
}

也许问得太多,但我努力学习的 m android 你的帮助会教我很多新的东西。在此先感谢。

解决方法 1:

首先,您插入算法是有缺陷的。 第二,你需要重置 TextView 的文本之前追加每 time

int[] array = {6, 4, 3, 2};
// TextView tv = (TextView) findViewById(R.id.textView2);
// Resets the text to be blank.
// tv.setText("");

for (int i = 1; i < array.length; ++i) {
    int j = i;
    while (j > 0 && array[j - 1] > array[j]) {
        int temp = array[j];
        array[j] = array[j - 1];
        array[j - 1] = temp;
        --j;
    }
    System.out.println(Arrays.toString(array));
    // i.e. [4, 6, 3, 2]
    // tv.append(Arrays.toString(array) + "\n");
}
官方微信
官方QQ群
31647020