Respond to the following about arrays and their implementations:
1) Describe an array and its various implementations.
2) Provide the C# code that would illustrate how to create, reference, and address an element of an array.
3) Create a flowchart and provide the corresponding pseudocode to show how to sort an array using Bubble Sort.
4) Create a flowchart and give the pseudocode for searching an array for a specified value using Sequential search algorithm.