关键词不能为空

当前您在: 主页 > 英语 >

实验一:Johnson-Trotter算法的实现

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 05:30
tags:

-

2021年2月28日发(作者:不在场)







算法设计与分析实验报告


















计算机学院

















计算机科学与技术
















200






































































指导教师




































201 1



12






计算机



学院





计算机科学与技术



专业








学号:





姓名:







协作者:


________




教师评定:














实验题目


__



实验一:


Johnson


-Trotter

< br>算法的实现








一、



实验目的与要求



?



理解


Jo hnson


-Trotter


算法


的思 想



?



掌握 用


Johnson


-Trotter


算 法


来生成排列的方法



二、



实验内容



Johnson- Trotter


算法通过移动来生成排列


给每个元素赋一个方向,这可以用一个数组来表示,


0


指向 左,


1


指向右。





package



/*



*


实现用来生成排列的


Johnson- Trotter


算法




*


输入:一个正整数


n



*


输出:


{1,...,n}


的所有排列的列表




*/



import


.*;


public



class


JohnsonTrotter {



static



int



elements


[];



static



int



direaction


[];



static



int



k


;


//


用于保存最大的移动元素在数组中的位置

< br>




static



int



count


= 0;


//


用于保存生成的排列总数





static



void


permutation(


int


n){



elements


=


new



int


[n+1];



direaction



=


new



int


[n+1];


//


表示元素的箭头的指向,

< br>1


表示指向左,


0


表示指


向右





for


(


int


i=1;i<=


elements


.


length


-1;i++){



elements


[i] = i;



direaction


[i] = 1;


//


初始化所有箭头指向左




}




output


(


elements


);



while


(


exitMobileE lement


(


elements


)) {


//


如果存在移动元素





if


(


direaction


[


k


]==1){


//


如果箭头 向左





if


(


k


>1 &&


elements


[


k

< p>
]>


elements


[


k


-1]){



//


交换两个元素的位置





int


temp =


elemen ts


[


k


];



elements


[


k


] =


elements


[


k


-1];



elements


[


k


-1] = temp;



//


同时,还要交换两个元素的箭头指向位置




temp =


direaction


[


k

< p>
];


< br>direaction


[


k


] =


direaction


[


k


-1];



direaction


[


k

-1] = temp;



output


(


elements


);



k


--;



//


调转所有大于


arr[k]


的元素的方向





for

< p>
(


int


i=1;i<=


elements


.


length


- 1;i++){


< p>
if


(


elements


[i]>


elements


[


k


]){



direaction


[i] = 1-


direaction


[i];


}


}


}


}



else


{


//


箭头向右





if


(


k


<< /p>


elements


.


length


-1&&


elements


[


k


]>


elements


[< /p>


k


+1]){



//


交换两个元素的位置





int


temp =


elemen ts


[


k


];



elements


[


k


] =


elements


[


k


+1];



elements


[


k


+1] = temp;



//


同时,还要交换两个元素的箭头指向位置




temp =


d ireaction


[


k


];



direacti on


[


k


] =

direaction


[


k


+1] ;



dire action


[


k


+1] = temp;



output


(


elements


);



k


++;



//


调转所有大于


arr[k]


的元素的方向





for

< p>
(


int


i=1;i<=


elements


.


length


- 1;i++){


< p>
if


(


elements


[i]>


elements


[


k


]){



direaction


[i] = 1-


direaction


[i];


}


}


}


}


}


//while



}


//Permutation


-


-


-


-


-


-


-


-



本文更新与2021-02-28 05:30,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/678914.html

实验一:Johnson-Trotter算法的实现的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文