sort algorithm

1)selection sort 뽑을 때 작은수나 큰수부터 차례대로 뽑음

2)insertion sort 넣을 때 작은수나 큰수부터 차례대로 넣음

ex)원하는 숫자를 넣으면 알아서 순서를 배열해주는 알고리즘

{.cpp}
// ConsoleApplication27.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//

#include "stdafx.h"
#include <iostream>
using namespace std;

const int declared_size = 20;

void fillarray(int a[], int size, int& numberused);

int indexofsmallest(int a[], int startindex, int numberused);

void sort(int a[], int numberused);

void swapvalues(int& v1, int& v2);

int search(int a[], int numberused, int target);

int main()
{
    cout << "this program sort\n";
    int samplearray[10], numberused;
    fillarray(samplearray, 10, numberused);
    sort(samplearray, numberused);
    cout << "it is \n";
    for (int index = 0; index < numberused; index++)
    {
        cout << samplearray[index] << "";
        cout << endl;
    }


    return 0;


}

void fillarray(int a[], int size, int& numberused)
{
    cout << "enter" << size << " no negative nube\n mark the endof lis is negative ";
    int next, index = 0;
    cin >> next;
    while ((next > 0) && (index < size))
    {
        a[index] = next;
        index++;
        cin >> next;
    }
    numberused = index;
    cout << "index is"<<index << endl;
}

void sort(int a[], int numberused)
{
    int indexofnextsmallest;
    //맨마지막에 두개가 남을때 이것을 한번만 돌리면된다. 이유는 둘중작은거 하나만 찾으면 되기 때문이다.
    for (int index = 0; index < numberused - 1; index++)
    {
        indexofnextsmallest = indexofsmallest(a, index, numberused);
        swapvalues(a[index], a[indexofnextsmallest]);
    }
}

void swapvalues(int&v1, int& v2)
{
    int temp;
    temp = v1;
    v1 = v2;
    v2 = temp;
}

int indexofsmallest(int a[], int startindex,int numberused)
{
    //min값에 a의 시작값을 넣어준다.
    int min = a[startindex];
    //indexofmin에는 index의 시작값을 넣어준다.
    int indexofmin = startindex;
    //a의 index는 startindex+1부터 시작된다.
    //만약 a[index]가 a의 맨시작점인 min값보다 작다면 min값에 작은값a을 넣어준다.
    //indexofmin에는 작은값을 갖는 index값을 넣어준다.
    for (int index=startindex+1;index < numberused; index++)
        if (a[index] < min)
        {
            min = a[index];
            indexofmin = index;
        }
    return indexofmin;
}

//a배열과 그것에대한 크기와 taget값을 받아준다.
//target과 동일한 a[]배열의 index값을 찾아준다.
int search(int a[], int numberused, int target)
{
    int index = 0;
    bool found = false;
    //a[index]값=target과 동일한 값이되면 루프를 멈춘다.
    while ((!found) && (index < numberused))
    {
        if (target == a[index])
            found = true;
        else
            index++;
    }
    if (found)
        return index;
    //else가 나오는 경우는 a[]의 배열이 끝나도록 target과 동일한 값이 없을때 이다.
    else
        return -1;
}

structure part

구조체이다.

C/C++ 언어는 기본 데이터형을 최소화하기 위해서 많이 사용하는 형식의 데이터형만을 기본 데이터형 으로 정의하고 나머지는 프로그래머가 데이터형을 정의해서 사용할수 있도록 만들어졌는데 이를 구조체를 통해 정의한다.

structure안에 정의된 변수를 membervaluable이라 한다.

membervaluable 의 순서는 중요하지 않다.

선언방법 struct <구조체명> { membervaluable 선언; };

예제)

{.cpp}
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

struct Theater
{
    string strName;
    int nTripTime;
    int pShowTime[10];
};

int main()
{
    Theater aTheater;
    aTheater = { "Lotte Cinema in Gunkuk Univ station",10,{9,10,11,13,14,15,16,18,20,23} };
    cout<<aTheater.strName<<endl<<"The time from home to the cinema : "<< aTheater.nTripTime << "minutes"<<endl<<"Movie : kings man2";
    for (int i=0; i < 10; i++)
    {
        cout << endl << i+1 << "- showing time : " << aTheater.pShowTime[i]<<":00";
    }


    return 0;
}

'언어 > CPP(cpp)' 카테고리의 다른 글

static,vector(벡터)  (0) 2017.12.25
클래스 생성자  (0) 2017.12.25
array(배열)  (0) 2017.12.25
영화 별점 표본 검사 코드  (0) 2017.12.25
assert,debug,driver,stub,중단점,디버그,조사식  (0) 2017.12.25

+ Recent posts