swap cake

public class cake {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int array[] = { 4, 1, 5, 2, 3,9,7,34,12,23,12 };
		int start=0;
		int end=array.length-1;
		cakeSort(array,start,end);
		for(int i=0;i<=end;i++)
			System.out.print(array[i]+" ");
	}

	public static void cakeSort(int[] array,int start,int end) {
		int i = end;
		int maxIndex=findMax(array,start,i);
		reverseOrder(array,start,maxIndex,i);
		i--;
		if(i<0)
			return;
		cakeSort(array,start,i);
	}

	public static int findMax(int[] array, int start, int end) {
		int maxIndex=0;
		int max = Integer.MIN_VALUE;
		for (int i = start; i <= end; i++) {
			if (array[i] > max) {
				max = array[i];
				maxIndex = i;
			}
		}
		return maxIndex;
	}
	// 每两次交换就把最大的放到最下面,len每次递减
	public static void reverseOrder(int[] array,int s,int e,int len)
	{
		int tmp[] =new int[array.length];
		for(int i=0;i<array.length;i++)
			tmp[i]=0;
		
		//第一次交换
		for(int i=s;i<=e;i++)
		{
			tmp[i]=array[i];
		}
		for(int i=e;i>=s;i--)
		{
			array[e-i]=tmp[i];
		}
		
		//第二次交换
		for(int i=0;i<=len;i++)
		{
			tmp[i]=array[i];
		}
		for(int i=len;i>=0;i--)
		{
			array[len-i]=tmp[i];
		}
	}

}

### 创建带蛋糕和烟火动画的单页面生日贺卡 为了创建一个具有创意的生日贺卡网页,可以结合HTML5、CSS3以及JavaScript来实现动态效果。下面是一个简单的例子。 #### HTML结构设 构建基础框架时,先定义好文档类型声明与字符编码设置,接着引入外部样式表文件并预留脚本加载位置,在主体部分规划出用于显示蛋糕图片及文字祝福语句的空间[^1]: ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Happy Birthday!</title> <!-- 引入Google Fonts --> <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap" rel="stylesheet"> <style> /* CSS代码将放置在这里 */ </style> </head> <body> <div class="container"> <h1 id="greeting">祝你生日快乐!</h1> <img src="path_to_cake_image.png" alt="Birthday Cake" id="cake"/> <canvas id="fireworks"></canvas> </div> <script> // JavaScript代码会放在此处 </script> </body> </html> ``` #### 添加CSS样式美化界面布局 通过自定义类名`.container`控制整体居中对齐;针对标题元素应用特定字体系列Poppins增强视觉吸引力;对于图像对象设定固定尺寸确保其适应不同设备屏幕宽度;最后利用伪元素`:before/:after`配合绝对定位模拟烟花绽放瞬间的效果[^2]: ```css * { margin: 0; padding: 0; box-sizing: border-box; } body, html { height: 100%; display: flex; justify-content: center; align-items: center; background-color: #fdeff9; font-family: 'Poppins', sans-serif; } .container { text-align: center; position: relative; } #greeting { color: #d62e7c; letter-spacing: .1em; } #cakewrapper img{ width: auto; max-width: 100%; height:auto; } /* Firework animation styles go here */ .firework:before, .firework:after { content:""; position:absolute; border-radius:50%; background:#fff; animation-name:bloom; animation-duration:.8s ; animation-timing-function:cubic-bezier(.2,.68,.18,1.08); animation-fill-mode:both; opacity:0; transform-origin:center bottom; z-index:-1; } @keyframes bloom {to{transform:scale(1); opacity:0}} ``` #### 实现JavaScript交互逻辑触发特效 借助Canvas API绘制随机分布于画布上的粒子群,并赋予它们逐渐扩散直至消失的行为模式模仿真实世界中的焰火升空现象。每当用户点击页面任意一处即刻启动新一轮表演循环直到停止条件满足为止[^3]: ```javascript const canvas = document.getElementById('fireworks'); const ctx = canvas.getContext('2d'); // 设置 Canvas 尺寸等于窗口大小 function resizeCanvas() { canvas.width = window.innerWidth; canvas.height = window.innerHeight; } resizeCanvas(); window.addEventListener('resize', resizeCanvas); class Particle { constructor(x, y){ this.x = x; this.y = y; this.size = Math.random()*4+1; this.speedX = (Math.random()-0.5)*10; this.speedY = (Math.random()-0.5)*10; this.color = `rgba(${~~(Math.random()*255)},${~~(Math.random()*255)},${~~(Math.random()*255)}, ${Math.random()+0.5})`; } draw(){ ctx.fillStyle=this.color; ctx.beginPath(); ctx.arc(this.x,this.y,this.size,0,Math.PI * 2,false); ctx.fill(); } update(){ this.draw(); if(this.size >= 0.2)this.size -= 0.1; else this.markedForDeletion=true; this.x +=this.speedX; this.y +=this.speedY + 1; if(this.y > canvas.height - this.size || this.x + this.size<0||this.x-this.size>canvas.width) this.markedForDeletion=true; } } let particlesArray=[]; function handleParticles(){ particlesArray.forEach((particle,index)=>{ particle.update(); if(particle.markedForDeletion){ particlesArray.splice(index,1); } }); } function animate(){ requestAnimationFrame(animate); ctx.clearRect(0,0,innerWidth, innerHeight); handleParticles(); } animate(); addEventListener('click',(event)=>{ let numberOfParticles=Math.random()*100+100; for(let i=0;i<numberofparticles;i++){ const particle=new Particle(event.clientX,event.clientY); particlesArray.push(particle); } }) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值