c#数据结构查找e元素相同的第一个位置返回序号
时间: 2024-10-14 13:18:14 浏览: 12
在 C# 中,如果你有一个已排序的数组或列表,想要找到第一个等于特定元素 `e` 的元素的位置,你可以使用二分查找法(Binary Search)。对于有序列表,二分查找的时间复杂度为 O(log n),效率较高。这里是一个简单的示例:
```csharp
public int FindFirstOccurrence(List<int> sortedList, int e)
{
// 确保列表非空且已排序
if (sortedList == null || !sortedList.IsSorted)
return -1; // 如果列表为空或未排序,返回-1表示找不到
int left = 0;
int right = sortedList.Count - 1;
while (left <= right)
{
int mid = left + (right - left) / 2;
// 检查中间元素是否相等
if (sortedList[mid] == e)
return mid; // 如果找到,直接返回索引
else if (sortedList[mid] < e)
left = mid + 1; // 否则,如果中间元素小于目标,在右半部分继续查找
else
right = mid - 1; // 否则,在左半部分继续查找
}
// 找不到的情况,返回 -1
return -1;
}
```
阅读全文