尝试创建一个基本项目,该项目将从用户那里获取值并将这些值存储在数组中。但该项目没有成功。
我想解决问题并使项目成功......
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding= ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.Al.setOnClickListener{
val size=arr.size
arr[count] = binding.editTextNumber.text.toString().toInt()
count++
bubbleSort(arr)
}
binding.Sirala.setOnClickListener {
binding.textView.clearComposingText()
for (i in arr){
binding.textView2.append(" "+arr[i])
}
}
}
private fun bubbleSort(arr: IntArray): IntArray {
val n = arr.size
for (i in 0 until n - 1) {
for (j in 0 until n - i - 1) {
if (arr[j] > arr[j + 1]) {
val temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
return arr
}
你的内循环索引被搞乱了。 i 和 j 永远不可能相同(这只是一种浪费,你会与自己交换)或 j 小于 i (如果你这样做,你最终会交换之前交换的元素回到原来的位置)。并且内部循环需要一直走到最后,否则如果最后一个元素不在位置,它将永远不会被排序。正确的索引是
j in i+1 until n