function [uzaklik_k,index_k,vekt_deger_k]=bir_vektor_icinde_secilen_sayiya_en_yakin_k_tane_sayiyi_bulma_v(vekt,k,secilen_sayinin_yeri) %eger secilen degere esit degerler varsa l_v=length(vekt); %vektorun boyutunu verir %secilen_sayinin_yeri=unidrnd(l_v) %vektorde secilen sayinin index degerini verir for i=1:l_v uzaklik(i)=abs(vekt(i)-vekt(secilen_sayinin_yeri)); index(i)=i; end %vektordeki her degerin vektorde secilen degere uzakligi bulundu %siralama yapilarak bu is cozumlenebilir for j=1:l_v-1 for i=1:l_v-1, if uzaklik(i)>uzaklik(i+1) % bu durumda yer degistirme yapilacak degisen_u=uzaklik(i); uzaklik(i)=uzaklik(i+1); uzaklik(i+1)=degisen_u; degisen_in=index(i); index(i)=index(i+1); index(i+1)=degisen_in; degisen_vekt=vekt(i); vekt(i)=vekt(i+1); vekt(i+1)=degisen_vekt; % bu yer degistirmeler sonucunda en uzak olan en saga gidecektir else %bu durumda degistirmeye gerek yok demektir end end end %uzaklik(1) her zaman bu algoritmada 0 olmak zorundadir, ama uzaklik(2) de %0'a esitse o durumda secilen sayidan vektorde en az 1 tane daha vardir if uzaklik(2)==0, sayici=1; for i=1:k+1 if index(i)==secilen_sayinin_yeri, else uzaklik_k(sayici)=uzaklik(i); index_k(sayici)=index(i); vekt_deger_k(sayici)=vekt(i); sayici=sayici+1; end end else uzaklik_k=uzaklik(2:k+1); index_k=index(2:k+1); vekt_deger_k=vekt(2:k+1); end