소수를 구하는 함수.
에라스토스테네스의 체(Sieve of Erastosthenes) 의 알고리즘을 이용한,
소수를 구하는 함수이다.
void sieve_func(int s[], int size);
void main ()
{
int i;
int sieve[100]={0};
for(i=2; i< 10; i++)
{
if(sieve[i] == 1) // 이미1이면다음으로넘어간다.
continue
sieve_func(sieve, i);; // 함수호출
}
for(i=0; i< 100; i++)
if (sieve[i] == 0) // 소수이면출력시킨다.
cout<< i <<" "
cout<<endl;
}
void sieve_func(int s[], int size)
{
int i;
// i = size * 2를한이유는자기자신을지니는숫자는
// 소수이기에제외시킨다.
for(i = size * 2;i < 100; i += size) // 배수를나타내야하니size만큼증가시킴
s[i] = 1;
}
이진 검색 함수
이진검색 전에는 미리 asc 정렬이 필요하다.
1. 일단 로우 값 ~ 하이 값 의 중간값을 선택
2. 중간값이 34보다 작으면 다시 중간 값을 원래 중간 값 +1 로 재정의
3. 로우 - 하이가 값이 바뀌면 종료(탐색값이 없다.)
int binary_search(int list[], int n, int key) // list[]는 오름차순 정렬된 정수배열, n은 배열의 사이즈
{ // Key는 찻고자 하는 숫자이다
int low, high, middle; // 찻고자 하는 수자 몇번째 원소인지 나타내준다.
low = 0;
high = n-1;
while( low <= high ){ // 아직 숫자들이 남아있으면
middle = (low + high)/2; // 중간 요소 결정
if( key == list[middle] ) // 일치하면 탐색 성공
return middle;
else if( key > list[middle] )// 중간 원소보다 크다면
low = middle + 1; // 새로운 값으로 low 설정
else
high = middle - 1; // 새로운 값으로 high 설정
}
return -1;
}
선택정렬 (오름차순 , 내림차순)
void asc(int a[], int size)
{
int i, j, temp=0;
for (i=0; i< size -1; i++)
for (j=i+1 ; j< size ; j++)
if ( a[i] > a[j]) // 내림차순은 부등호만 반대로...
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
계속 추가예정......