所以我在python中实现了一个块交换算法.
我遵循的算法是这样的:
初始化A = arr [0..d-1]和B = arr [d..n-1] 1)执行以下操作直到A的大小等于B的大小
a)如果A较短,则将B分成B1和Br,使得Br与A的长度相同.交换A和Br以将ABlBr变为BrBlA.现在A处于最后的位置,因此重复出现在B.
b)如果A较长,则将A分成Al和Ar,使得Al与B交换Al和B的长度相同,以将AlArB变为BArAl.现在B处于最后的位置,因此重复出现在A.
2)最后,当A和B的大小相等时,阻止交换它们.
该网站上的C实现了相同的算法 - 阵列旋转
我的python代码是相同的
a = [1,2,3,4,5,6,7,8]
x = 2
n = len(a)
def rotate(a,x):
n = len(a)
if x == 0 or x == n:
return a
if x == n -x:
print(a)
for i in range(x):
a[i], a[(i-x+n) % n] = a[(i-x+n) % n], a[i]
print(a)
return a
if x < n-x:
print(a)
for i in range(x):
a[i], a[(i-x+n) % n] = a[(i-x+n) % n], …Run Code Online (Sandbox Code Playgroud) /* I am trying to make a basic calculator in JAVA using swings. However, after adding
* actionlisteners to each of my buttons, the actionPerformed method is never called. I can't
*seem to figure out why .
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class calculator extends JApplet implements ActionListener
{
JLabel num1_label,num2_label,result_label;
JTextField t1,t2,t3;
JButton sum,sub,mul,div;
float num1,num2,res;
public calculator ()
{
Container contentPanel = getContentPane();
contentPanel.setLayout(new GridLayout(6,2));
JLabel num1_label = new JLabel("Number 1");
contentPanel.add(num1_label);
JTextField t1 = …Run Code Online (Sandbox Code Playgroud)