bool find_MinMax(int a[], int n, int &Max, int &Min) { //从n个数中找出最大值Max与最小值Min
int max, min, i
if(n <1) return false/*如果是空列,则返回失败*/
if(n == 1){/*如果只有一个元素,则这个元素既是最大元又是最小元*/
Max = a[0], Min = a[0]
return true
}
if(a[0] >a[1]) { /*先假定a[0]与a[1]中的较大元为最大元、较小元为最小元*/
Max = a[0], Min = a[1]
}
else {
Max = a[1], Min = a[0]
}
for(i = 12 * i <n - 1i++) {/*然后每两个为一组进行处理*/
if(a[2 * i] >a[2 * i + 1]) {
max = 2 * i, min = 2 * i + 1
}
else {
max = 2 * i + 1, min = 2 * i
}
if(a[max] >Max) Max = a[max]
if(a[min] <Min) Min = a[min]
}
if(n % 2) { //如果元素总个数为奇数,则处理最后的这个落单的元素
if(a[n - 1] >Max) Max = a[n - 1]
else if(a[n - 1] <Min) Min = a[n - 1]
}
return true
}
import java.util.*public class Test
{
public static void main(String[] args)
{
int[] a = new int[10]
Scanner input = new Scanner(System.in)
for(int i=0i<10i++) a[i]=input.nextInt()
int chg=0,cmp=0
for(int i=0i<9i++)
for(int j=0j<9-ij++)
{
cmp++
if(a[j]>a[j+1])
{
chg++
int t=a[j]
a[j]=a[j+1]
a[j+1]=t
}
}
System.out.println(Arrays.toString(a))
System.out.println("比较次数:"+cmp)
System.out.println("交换次数:"+chg)
input.close()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)