순환횟수를 줄여오래-_-..
반쪽짜리 소스로 줄여보려고 연구중인데...
도통 어찌해야할지 감이 안잡히네...
순환횟수를 결정적으로 늘리는 녀석은 c_2
c_1 과 c_2는 같은 짓을 하지만 위의 이유로 다른방법으로 추가적으로 "무언가"를 할 필요가 있어. 그걸 찾아보는거지. 궬궬궬
직접입력 받는 방법도 배워봅세 [-_-]
반쪽짜리 소스로 줄여보려고 연구중인데...
도통 어찌해야할지 감이 안잡히네...
순환횟수를 결정적으로 늘리는 녀석은 c_2
c_1 과 c_2는 같은 짓을 하지만 위의 이유로 다른방법으로 추가적으로 "무언가"를 할 필요가 있어. 그걸 찾아보는거지. 궬궬궬
public class ObjectSort{
private static int[] target;
private static int[] origin;
private static int n;
private static int complete=0;
private static int circle_cnt=0;
public static void main(String[] args){
target = getData1();
origin = getData();
n = (target.length);
new ObjectSort();
}
private ObjectSort(){
while(!compare_all()){
for(int i=complete+1;i<n&&!compare_line();i++,circle_cnt++){
if(target[complete]==origin[i]){
c_1(i);
}
else if(target[complete]==origin[complete]&&target[i]!=origin[i]){
c_2(i);
}
}
/*
if(compare_line()){
s();
}
*/
}
System.out.println(circle_cnt);
}
/*
private void s(){ //switch
}
*/
private static int[] getData(){
int[] temp_input={1,2,3,4,5};
return temp_input;
}
private static int[] getData1(){
int[] temp_input={5,4,3,2,1};
return temp_input;
}
private boolean compare_line(){
for(int i=0;i<n;i++){
if(target[i]!=origin[i]){
return false;
}
}
return true;
}
private boolean compare_all(){
for(int i=0;i<n;i++){
if(target[i]!=origin[i]){
return false;
}
}
return true;
}
private void c_1(int target_index){
int temp;
temp=target[target_index];
target[target_index]=target[complete];
target[complete]=temp;
getValue();
}
private void c_2(int target_index){
int temp;
temp=target[target_index];
target[target_index]=target[complete];
target[complete]=temp;
getValue();
}
public void getValue(){
for(int i=0;i<n;i++){
System.out.print(target[i]+" ");
}
System.out.println();
}
}직접입력 받는 방법도 배워봅세 [-_-]


rss