Skip to main content

Social Circles, Friend Finder Algorithm in Java full implementation

Description

Read a list of friend relations A-B, A-D, C-A, C-D, ..., and determine friendship circles.
2 Problem Statement These days, it seems that we expect computers to direct our social lives, even to the point of choosing our friends. Of course, as programmers, we get to implement these choice algorithms, as in this problem.

Given a \friend relation" { a set of pairs of people who designate each other as \friends"
{ and a particular person (C, \the client") your algorithm is to select any speci ed number
(N) of people who are not friends of C, but who are friends of friends of C. Speci cally, the algorithm picks those people who know the greatest numbers of C's friends. For example,

if N = 2, C is Jack, and the friend relation is
Jack/Mary Mary/Claire Jack/Tom Tom/Claire Jack/Richard
Tod/Richard Claire/Richard Jack/Jill Jill/June June/Tod
Jill/Tod Jill/Peter Mary/Tom Richard/Tom Jill/Tom

the program would select Claire (who knows Jack's friends Mary, Tom, and Richard) and Tod (who knows Richard and Jill). Jack's other friends of friends are June and Peter (who both know Jill). The relationships between Jack's friends (such as Mary and Tom) are irrelevant. Implicitly, Jack is his own friend, so that he is not in the list of suggestions. The \friend" relation is symmetric: you are my friend i (if and only if) I am yours.

The input will consist of multiple sets of data in free format. Each set begins with an
integer, N, and a name (consisting of a string of non-whitespace characters), C. There
then follows a sequence of an even number of names, each successive pair of which denotes a friend relationship. A given friend relationship will appear only one in the sequence (with either member rst). The implicit friendship of a person with himself will not be included.

The sequence terminates with two asterisks (separated by whitespace). For each input set, the output consists of a list of whitespace-separated names in alpha-betical order giving the N non-friends of C who are acquainted with the most friends of C. You may assume that there will always be at least N non-friends of C. In case too many people know the smallest qualifying number of friends, choose those that come earlier in
alphabetical order. Thus, if N = 2 and Mike knows two of C's friends while Sam, Jill, and
Mary know one, then choose Jill and Mike.

Example

Input:
2 Jack
Mary Claire Jack Tom Tom Claire Jack Richard
Jack
Mary
Tod Richard Claire Richard Jack Jill Jill June June Tod
Jill Tod Jill Peter Mary Tom Richard Tom Jill Tom
* *
3 Jack
Mary Claire Jack Tom Tom Claire Jack Richard
Jack
Mary
Tod Richard Claire Richard Jack Jill Jill June June Tod
Jill Tod Jill Peter Mary Tom Richard Tom Jill Tom
* *
Output:
Claire Tod
Claire June Tod

Buy now

CONTACT DETAILS

For any other questions or other tasks please feel free to contact me
via email: mhassnainjamil@gmail.com
via WhatsApp: +92-324-7042178
via skype: hassnainjamil1

Comments

Popular posts from this blog

The Zoo Management System - entity relationship diagram & MS Access Database

Zoo Management System - Project Details: You are the employee of a big, worldwide working Zoo Management Company. Your company is responsible for the Zoo management. Your boss thinks it would be a great idea to store all data for each Zoo in a brand new self-developed ZOO Management System. Up to now, the ZOO management company has maps of each ZOO available. Your boss knows that you took a course in introduction on an ERP system, so he asks you if you could help designing such a system. Each ZOO must have the same organizational structure, which should look like this: Each Zoo has a Zoo-Address. Each Zoo has many visitors (Visitor Ticket Process (VTP). Many Zoo-Attractions belong to a Zoo. Module 1: Entity Relationship Diagram Design a ER (entity-relationship) diagram for your ZOO Management System. Use the information provided below with the entities and its attributes. Put the entities in the correct relationship to each other (organizational structure). Module 2: DB Implem...

EIT Knowledge and Innovative Community Scholarships has been announced

Admission Criteria To qualify for our programmes, applicants need to fulfill the admission requirements based on previous studies, English proficiency and relevant documentation. Previous Studies: A Completed Bachelor’s Degree In order to be admitted into a KIC InnoEnergy MSc programme, you must have completed a Bachelor’s degree encompassing a minimum of 180 ECTS credits or equivalent academic qualifications from an internationally recognized university. Please note that admissions depend on the specific BSc degree you hold for entry into the MSc programme you are interested in. Conditional Acceptance – Undergraduate Students in Final Year Students in their final year of undergraduate education may also apply and if expected to qualify, receive a conditional offer. If you have not completed your studies, please include a written statement from your university’s administration office (or equivalent department), confirming that you are enrolled in the final year of your study programme ...

Human Physiology by Stuart Ira Fox [PDF] (12th edition) free download