《数据结构、算法与应用》8.(顺序查找数组中第一个出现指定元素的位置)

近期在读《数据结构、算法与应用》这本书,把书上的习题总结一下,用自己的方法来实现了这些题,可能在效率,编码等方面存在着非常多的问题,也可能是错误的实现,假设大家在看这本书的时候有更优更好的方法来实现,还请大家多多留言交流多多指正。谢谢偷笑吐舌头

8. 从左至右检查数组a[0:n-1]中的元素,以查找雨x相等的那些元素。假设找到一个元素与x相等,则函数返回x第一次出现所在的位置。假设在数组中没有找到这种元素。函数则返回-1。

//
//  main.cpp
//  Test_08
//
//  Created by cc on 14-6-1.
//  Copyright (c) 2014年 cc. All rights reserved.
//

/*
 8.  从左至右检查数组a[0:n-1]中的元素。以查找雨x相等的那些元素。

假设找到一个元素与x相等,则函数返回x第一次出现所在的位置。 假设在数组中没有找到这种元素,函数则返回-1. */ #include <iostream> using namespace std; template <class T> int sequentialSearch(T arr[], const T& x, int n); int main(int argc, const char* argv[]) { const int n = 10; int arr[n] = {0, 1, 2, 3, 4, 6, 5, 5, 6, 7}; int x = 5; int index = sequentialSearch(arr, x, n); cout << x << "第一次出现的位置:" << index << endl; x = 111; index = sequentialSearch(arr, x, n); cout << x << "第一次出现的位置:" << index << endl; return 0; } /** * @brief 按顺序查找数组中与x相等的元素,并返回其第一次出现的位置 * * @param arr[] 数组 * @param x 元素x * @param n 数组的大小 * * @return true: 初始化成功 false: 初始化失败 */ template <class T> int sequentialSearch(T arr[], const T& x, int n) { for (int i = 0; i < n; i++) { if (x == arr[i]) { return i; } } return -1; }


输出结果例如以下图:

本文由CC原创总结,如需转载请注明出处:http://blog.csdn.net/oktears/article/details/27966399

原文地址:https://www.cnblogs.com/wgwyanfs/p/6753247.html