2021年春季学期《算法分析与设计》练习5

本篇博客涵盖了算法分析与设计的多个练习,包括使用冒泡排序对10个整数进行升序排序,通过二分搜索查找两个数列的交集,理解如何利用rand(n)生成特定范围的随机数,实现整数的奇偶排序(奇数降序、偶数升序),以及详细解释快速排序和随机化快速排序的实现思路和代码示例。
摘要由CSDN通过智能技术生成

A

从键盘上输入10个整数,用冒泡法对这10个数进行排序(由小到大)。【必须使用冒泡排序实现】

import java.util.Scanner;

public class Main{
   
	

public static void main(String[] args) {
   
    Scanner in =new Scanner(System.in);
    
    	int []a=new int[10];
    	int temp;
    	for(int i=0;i<10;i++){
   
    		a[i]=in.nextInt();
    		
    	}
    	for(int k=0;k<9;k++){
   
    		for(int j=0;j<9-k;j++){
   
    			if(a[j]>a[j+1]){
   
    				temp=a[j];
    				a[j]=a[j+1];
    				a[j+1]=temp;
    			}
    		}
    	}
    	
    	for(int i=0;i<10;i++){
   
    		System.out.println(a[i]);
    		
    	}

}
}

B 用二分搜索

请编写一个程序,输入包含n(n<=100000)个整数的数列S以及包含q个(q<=50000)不重复整数的数列T,输出既包含于T也包含于S的整数的个数C。S、T中的元素均大于0且小于109。S的元素按升序排列,T的元素不重复。

import java.util.Scanner;

public class Main{
   
	

public static void main(String[] args) {
   
    Scanner in =new Scanner(System.in);
    while(in.hasNext()){
   
    	int c=0;
    	int n=in.nextInt();
    	int []s=new int[n];
    	for(int i=0;i<n;i++){
   
    		s[i]=in.nextInt();
    	}
    	
    	int q=in.nextInt();
    	int []t=new int[q];
    	for(int j=0;j<q
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值