C++

c++ 선택정렬

Dev_Jen 2023. 1. 10. 23:24
반응형
#include <iostream>  	//선언부 컴파일에 접근을해서 선언파트에 있는 걸 처리해서 사용 
using namespace std;    //std라는 소속을 알려줄 필요가 다음부터 없는것 등록을 했을경우 ex( std::cout 
						// IT융합학부 2학년 1971070 이재은 선택정렬 


int main(){			// 몸체부, 메인 함수 // int 를 쓰는이유는 비정상적인 오류를 제외 시키는것
					//void를 써도 상관없지만 오류가 날수도있고 계속 컴퓨터가 값을 기다린다
					
   int a[4]={5,3,2,1};				//arr 이라는 배열이 가르키는 주소 메모리 값을 4로 선언과 동시에 5,3,2,1로 초기화 
   int data=0;						//data 이라는 변수가 가르키는 주소 값에 메모리안에 0을 선언 0으로 초기화 
   int temp=0;						//temp라는 변수가 가르키는 주소 값에 메모리안에 0을 선언 0으로 초기화 
   cout << "============data============" <<endl; 				//데이터값 출력문, 줄바꿈 
   for(int i=0;i<4;i++){								//0 ~ 3까지 1++ 조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
   	cout<< i+1 << "번째 배열: ";						//i+1 번째 배열 값 출력문 i는 0부터 이기 ‹š문 
      cout<<a[i] << endl ; 								//배열값 출력문 
   }			
   cout << "============swap============" << endl;			//솔트 시작 출력문, 줄바꿈 
   for (int i=0; i<2; i++){									//0 ~ 1까지 1++ 조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
        data=i;												// data값에 i대입 사실상 data가 가르키는 주소값의 메모리에 i값 대입 
        for (int j=i+1; j<4; j++){							//i+1 ~ 3까지 1++ 조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
            if (a[j] < a[data])								//a[j] 배열 값이 a[data]보다 작다면 if조건문 실행 
                data = j;									// data값에 j대입 사실상 data가 가르키는 주소값의 메모리에 j값 대입 
        }
        temp = a[i];										//temp 배열 값에 주소가 가르키는 메모리 값에 a[i] 대입 
        a[i] = a[data];										//a[i] 배열 값에 주소가 가르키는 메모리 값에 a[data] 대입
        a[data] = temp;										//a[data] 배열 값에 주소가 가르키는 메모리 값에 temp 대입		솔트문 
        for(int i=0;i<4;i++){								//0~3까지 1++ 조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
        cout<<a[i]<<" "; 									//솔트 값 출력문 
       }
   cout<<endl;												//줄바꿈 
}
   cout<<endl<<"최종 배열 값:";								//최종 배열 값 출력문 
   for(int i=0;i<4;i++){									//0 ~ 3까지 1++ 조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
      cout<<a[i]<<" "; 										//최종 배열 값 출력문 
   }
   return 0; 												//리턴값 0 
}
반응형