순환횟수를 줄여오래-_-..
반쪽짜리 소스로 줄여보려고 연구중인데...
도통 어찌해야할지 감이 안잡히네...
순환횟수를 결정적으로 늘리는 녀석은 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();
	}
}


직접입력 받는 방법도 배워봅세 [-_-]
이올린에 북마크하기(0) 이올린에 추천하기(0)
2005/11/03 10:54 2005/11/03 10:54
포인터와 똑같은 결과..
그럼 two의 내용은 one으로 덮어지는 순간 삭제된건가?

public class Number{
	private int number;
	
	public Number(int number){
		this.number =number;
	}
	public int getNumber(){
		return this.number;
	}
	public void setNumber(int number){
		this.number=number;
	}
	public static void main(String[] args){
		Number one = new Number(1);
		Number two = new Number(2);
		System.out.println("Beginning: ");
		System.out.println(("One = " + one.getNumber()));
		System.out.println(("Two = " + two.getNumber()));
		two = one;
		System.out.println("
One을 two에 대입한 뒤");
		System.out.println("
One = " + one.getNumber());
		System.out.println("
Two = " + two.getNumber());
		two.setNumber(3);
		System.out.println("
Two의 값을 변경한 뒤");
		System.out.println("
One = " + one.getNumber());
		System.out.println("
Two = " + two.getNumber());
	}
}
이올린에 북마크하기(0) 이올린에 추천하기(0)
2005/11/02 19:24 2005/11/02 19:24
jsp가 뭔지 제대로 알지도 못하는게.. 툴 부터 깔고있습니다-_-;..
우선은 도서고나에서 jsp관련 서적을 구하는일 이 급선무.
요새 매일같이 1 ~ 3시간을 java공부에 투자하고있는데 환경구축이 80%가 들어가는군요 -_-;..
jdk + tomcat 연동도 죽어나는지 알았고...
이클립스로 jsp코딩 국내에선 별로 개척되지(?) 길인지라 정보도 적고 힘들군요.
열심히 할겁니다  ̄ ^ ̄)b
이올린에 북마크하기
2005/09/01 12:08 2005/09/01 12:08
class Account
{
	String name;
	int money=0;
}

class Accmanager
{
	int acccnt=0;
	int i;
	Account [] accary;
	
	Accmanager(){
		accary = new Account[10];
	}
	int findpeople(String name){
		int i=0;
		while(accary[i].name!=name){
		i++;
			if(i==10){
				return -1;
			}		
		}	
		return i;
	}


	void deposit(String name,int plusmoney){		
		int peoplenum = findpeople(name);
		if(peoplenum>-1){
		accary[peoplenum].money += plusmoney;
		System.out.println(name+"님의 계좌에"+plusmoney+"원을 입금 하였습니다.");
		}
		else{
			System.out.println("해당계좌를 찾을 수 없습니다.");
		}
	}


	void newaccount(String name){
		if(acccnt!=10){
		accary[acccnt] = new Account();
		accary[acccnt].name = name;
		acccnt++;
		System.out.println(name+"님의 계좌가 생성되었습니다.");
		}
		else{
			System.out.println("계좌 갯수 제한이 초과되었습니다");
		}
	}


	void withdraw(String name,int minusmoney){
		int peoplenum = findpeople(name);
		if(peoplenum>-1){
			if(accary[peoplenum].money >= minusmoney){
				accary[peoplenum].money -= minusmoney;
				System.out.println(name+"님의 계좌에서"+minusmoney+"원을 출금 하였습니다.");
			}
			else{
				System.out.println("잔고가 부족하여 출금을 실패했습니다.");
			}
		}
		else{
			System.out.println("해당계좌를 찾을 수 없습니다.");
		}
	}


	int getbalence(String name,boolean flag){
		int peoplenum = findpeople(name);
		if(peoplenum>-1){
			if (flag==true)
			{
				System.out.print(name+"님의 계좌 잔액 = ");
			}
			return accary[peoplenum].money;
		}
		else{
			System.out.println("해당계좌를 찾을 수 없습니다.");
			return 0;
		}
		
	}
}

public class Newbanking
{
	public static void main(String [] args){
		Accmanager am = new Accmanager();
				
				am.newaccount("손오공");

                am.newaccount("저팔계");

                am.newaccount("사오정"); 

                am.deposit("손오공", 1000);

                System.out.println(am.getbalence("손오공",true));

                am.withdraw("손오공", 2000);

                am.withdraw("손오공", 1000);

                System.out.println(am.getbalence("손오공",true)); 

                am.deposit("저팔계", 3000);

                System.out.println(am.getbalence("저팔계",true));

                am.withdraw("저팔계", 2000);

                am.withdraw("저팔계", 1000);

                System.out.println(am.getbalence("저팔계",true));

                am.deposit("사오정", 1000);

                System.out.println(am.getbalence("사오정",true));

                am.withdraw("사오정", 2000);

                am.withdraw("사오정", 1000);

                System.out.println(am.getbalence("사오정",true));
	}
}


역시 책이 없다는건... 디버그를 피부로 하는 느낌이군 -_-b 이제 jsp로 입력 , 출력 , 명령을 해봐야겠다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
2005/08/31 16:21 2005/08/31 16:21
1.주석 
<%--  --%> 

2.선언문(Declaration) 
<%!   %> 

3.출력문 
<%=  %> 
다른 필드와 달리 문장끝에 ";"가 없다. 
선언문(Declaration),문장(Scriptlet)안에 사용할 수 없다. 

4. 문장 
<%   %> 
일반적으로 자바프로그램을 코딩하는 방식으로 문장을 작성한다. 
(선언, 연산, 루핑, 주석등)  


5.html 
<% 와 %>로 둘러 싸이지 않은 곳에 입력하면된다. 

본 강좌 내용은 진민님의 홈페이지에서 발췌한 내용입니다.
진민님의 홈페이지. http://myhome.shinbiro.com/~jimmy
진민님의 EMail. jimmy@sbr.net
이올린에 북마크하기(0) 이올린에 추천하기(0)
2005/08/30 14:11 2005/08/30 14:11
헬로우 자바 -_-! 언어를 배우면 왜 항상 이것부터 하는걸까? 하면서도... 이~ 상하게 하고싶네..

public class HelloWorldApp
{
  public static void main (String args[]){
    System.out.println("Hello JAVA!");
  }
}




while로 만든게 맘에 안들지만 대략 구구단 입력한 단 출력하기-_-;.. jdk 깔면서 삽질한게 너무 아깝다 --; c++과 비슷해서 대충대충 패스패스~

public class InputOutput {
public static void main(String [] args) throws Exception
{
int b; int n=1;
System.out.print("단수를 입력하세요 >> ");
b = System.in.read()-'0';
while(n<10){
System.out.print(b + " * " + n + " = " + b*n + " "); n++;
}
System.out.print("끝입니다."); }
}


자바를 시작합니다 -_-)/
이올린에 북마크하기(0) 이올린에 추천하기(0)
2005/08/29 20:12 2005/08/29 20:12
openclose