Besides three storage class specifications namely, Automatic, External and Static, there is a register storage class. Registers are special storage areas within a computer’s CPU. All the arithmetic and logical operations are carried out with these registers.

For the same program, the execution time can be reduced if certain values can be
stored in registers rather than memory. These programs are smaller in size (as few
instructions are required) and few data transfers are required. The reduction is there in
machine code and not in source code. They are declared by the proceeding declaration
by register reserved word as follows:

register int m;

Points to remember:

• These variables are stored in registers of computers. If the registers are not
available they are put in memory.
• Usually 2 or 3 register variables are there in the program.
• Scope is same as automatic variable, local to a function in which they are
declared.
• Address operator ‘&’ cannot be applied to a register variable.
• If the register is not available the variable is though to be like the automatic
variable.
• Usually associated integer variable but with other types it is allowed having
same size (short or unsigned).
• Can be formal arguments in functions.
• Pointers to register variables are not allowed.
• These variables can be used for loop indices also to increase efficiency.

Besides three storage class specifications namely, Automatic, External and Static, there is a register storage class. Registers are special storage areas within a computer’s CPU. All the arithmetic and logical operations are carried out with these registers.

For the same program, the execution time can be reduced if certain values can be
stored in registers rather than memory. These programs are smaller in size (as few
instructions are required) and few data transfers are required. The reduction is there in
machine code and not in source code. They are declared by the proceeding declaration
by register reserved word as follows:

register int m;

Points to remember:

• These variables are stored in registers of computers. If the registers are not
available they are put in memory.
• Usually 2 or 3 register variables are there in the program.
• Scope is same as automatic variable, local to a function in which they are
declared.
• Address operator ‘&’ cannot be applied to a register variable.
• If the register is not available the variable is though to be like the automatic
variable.
• Usually associated integer variable but with other types it is allowed having
same size (short or unsigned).
• Can be formal arguments in functions.
• Pointers to register variables are not allowed.
• These variables can be used for loop indices also to increase efficiency.

In case of single file programs static variables are defined within functions and individually have the same scope as automatic variables. But static variables retain their values throughout the execution of program within their previous values. Points to remember:

• The specifier precedes the declaration. Static and the value cannot be accessed
outside of their defining function.
• The static variables may have same name as that of external variables but the
local variables take precedence in the function. Therefore external variables
maintain their independence with locally defined auto and static variables.
• Initial value is expressed as the constant and not expression.
• Zeros are assigned to all variables whose declarations do not include explicit
initial values. Hence they always have assigned values.
• Initialization is done only is the first execution.

In case of single file programs static variables are defined within functions and individually have the same scope as automatic variables. But static variables retain their values throughout the execution of program within their previous values. Points to remember:

• The specifier precedes the declaration. Static and the value cannot be accessed
outside of their defining function.
• The static variables may have same name as that of external variables but the
local variables take precedence in the function. Therefore external variables
maintain their independence with locally defined auto and static variables.
• Initial value is expressed as the constant and not expression.
• Zeros are assigned to all variables whose declarations do not include explicit
initial values. Hence they always have assigned values.
• Initialization is done only is the first execution.

In this case of clustering, the hierarchical decomposition is done with the help of bottom-up strategy where it starts by creating atomic (small) clusters by adding one data object at a time and then merges them together to form a big cluster at the end, where this cluster meets all the termination conditions. This procedure is iterative until all the data points are brought under one single big cluster.

Basic algorithm of agglomerative clustering

  1. Determine the proximity matrix.
  2. Assume that each data point belongs to a cluster.
  3. Do it again.
  4. Combine the two groups that are the closest together.
  5. Make changes to the proximity matrix.
  6. Continue until just one cluster remains.


  • Hierarchical clustering does not have a mathematical goal.
  • All the methodologies applied for calculating the similarity index between clusters does
    not apply fully in every situation, each technique has its own merits and demerits.
  • Due to high space and time complexity. This clustering algorithm is not applicable for
    huge data.
  •  Hierarchical Clustering analysis is an algorithm that groups the data points with similar properties and these groups are termed “clusters”. As a result of hierarchical clustering, we get a set of clusters, and these clusters are always different from each other. Clustering of this data into clusters is classified as:

     Agglomerative Clustering (involving decomposition of cluster using bottom-up strategy)
     Divisive Clustering (involving decomposition of cluster using top-down strategy)

    Hierarchical clustering Technique in terms of space and time complexity:

     Space complexity: When the number of data points is large, the space required for the Hierarchical Clustering Technique is large since the similarity matrix must be stored in RAM. The space complexity ismeasured by the order of the square of n.

    Space complexity = O(n²) where n is the number of data points.

     Time complexity: The time complexity is also very high because we have to execute n iterations and update and restore the similarity matrix in each iteration. The order of the cube of n is the time complexity.
    Time complexity = O(n³) where n is the number of data points.