C를 이용한 K-means Clustering 구현
·
Programming/C
이것은 1학년 2학기때 시스템프로그래밍 기초라는 과목을 들으면서 구현한 것인데 개념과 함께 누군가에겐 도움이 되지 않을까 싶어 글을 쓴다. 나도 이 과제 덕분에 프로그래밍을 하는 데 있어 막힘도 많았지만 구현하였을 때의 쾌감을 다시 한번 느끼지 않았나 싶어 글을 남겨본다.K-means Clustering 이란?K-means Clustering은 비지도 학습(Unsupervised Learning)의 대표적인 알고리즘으로, 주어진 데이터를 K개의 Cluster(클러스터, 군집)으로 묶는 알고리즘이다. K-means 알고리즘에서 K는 묶을 클러스터의 개수를 의미하고 means는 평균을 의미한다. 즉, 각 클러스터의 평균(mean)을 활용하여 K개의 군집으로 묶는다는 의미이다.분류(Classification)..
포인터 관련하여 정리
·
Programming/C
보호되어 있는 글입니다.
C언어에서 선언된 배열 값외의 배열 주소에 접근이 가능할까?
·
Programming/C
군대에서 C언어를 복습하다가 포인터와 배열의 관계에 대해 궁금한점이 생겨서 한 번 알아보았다.궁금한 점은 사진에 나와있는 코드를 실행해보고 생겼는데, '어째서 존재하지 않을 int arr[2][0]의 주소(메모리)에 접근이 가능한가?' 였다. 그리고 '접근이 가능하더라도 왜 그 값은 쓰레기 값이 아닌, int arr[1][1]의 주소에 4바이트를 더한 정상적인 주소값이 나오는지' 가 궁금했다. 이 결과를 보고 왜 그런지 알아보기 위해, 일단 sizeof 연산자를 이용해보았다. 하지만, 배열의 크기는 16바이트로 정상적인 값이 나왔다. 그리고 int arr[3][0]이나 다른 주소값에도 접근을 해보았지만 에러만 발생했다. 아는대로 왜 그런지 알아보려고 했지만 알 수 없어서 질문을 한 결과. 《 int ar..