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

《数据结构、算法与应用》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