A. java编程问题。用两个for循环来把输入的整数从小到大排序。
我用 3,1,5,4,2做了一下测试,把每次内循环后(外循环的一次)的数组打出来如下:
5 1 3 4 2
1 5 3 4 2
1 3 5 4 2
1 3 4 5 2
1 2 3 4 5
这个排序看起来有点反人类,好像第一次循环的时候把大的往前面放,其实意思综合起来就一句话:外循环的下标i到哪个数,就保证前i个数是有序的。
解释一下吧:
i=0的时候把最大的数放在z[0]
i=1的时候,z[0]肯定比z[1]大,互换;后面的数都比不上换过的z[1],所以前2个是有序的。
在i=k时,前k个数是有序的,即z[0...k-1]有序,那么对于z[k]来排序(此时i=k),n从0开始(即从前面开始),如果n下标的元素大,则互换;如果小,则不换。此时n在i之前,所以保证了大的数一定扔到了后面;那么内循环中n自增时,前n个数一定是排好序的,直到n=i(即k),那么前k+1个数也就是有序的。而由于n超过i之后,a[i]变成了原来的a[k-1],一定是数组中最大的数,因此后面的数都比不过它,也就不会再进行交换了。所以在这次外循环中,前k+1个数变成了有序的。
由数学归纳法,最后一定会把所有的数进行排序。
不懂请追问。喜欢就请采纳吧~
B. java循环实现!!!再排序。。。没学数组。。交换等等!
简单到不想写
C. Java语言中for循环结构的基本语法和执行顺序是
1、for循环编程语言中的语句之一,用于循环执行。for语句比while语句和do-while都要灵活,是一种功能更大、更常用的循环语句,它的一般基本语法格式为:
for(表达式1;表达式2;表达式3)
{
//循环体
}
其中,表示式都可以省略,但是分号不可省略。
2、for循环的执行顺序如下:
例如:
for(i=1;i<=10;i++)
{
语句;
}
示例中先给i赋初值1, 判断i是否小于等于10, 若是则执行语句, 之后值增 加1。再重新判断, 直到条件为假, 即i>10时, 结束循环。
D. java排序算法for循环语句怎么理解请帮忙讲解下,
class Sortint_1 {
int i,j,k,temp;
void Sortint(int a1,inta2[]) { //传递参数 数组长度,数组对象{1,5,2,0}
for(i=0;i<a1-1;i++) { //从第一个元素开始遍历数组
k = i; //k和i同步
for(j=i+1;j<a1;j++) // j定位为第二个元素,开始内循环找到未排序中最小值
if(a2[j]<a2[k]) k=j; //如果在未排序中的元素有比当前K值小的,则将k置为较小元素的下标,始终保持k最小
if(k!=i) {
temp = a2[i];a2[i]=a2[k];a2[k]=temp; //遇到小值则i,k交换
}
}
}
总结:内层循环是为了寻找未排序中的元素的最小值;找到后在外层循环将值赋给i。具体怎么回事,你找一个数组自己走一遍就能理解了,这样印象也能更深刻
E. Java编程 已知数组a[6]={8,5,4,2,0,9},请使用for循环来对数组从小到大排序
int r = 0;
for(int i = 0; i < 5; i++){
if(a[i] > a[i+1]){
r = a[i];
a[i] = a[i+1];
a[i+1] = r;
}
}