C# 数组查找


        //10.产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成,并实现查找某个数字在数组中的位置,如果该数字在数组中不存在,则输出-1。(分别用遍历和二分查找方式实现)。
        int[] randomArray10 = new int[10];
        for (int i = 0; i < randomArray10.Length; i++) {
            randomArray10 [i]  = Random.Range (0, 99);
        }
        string randomStr10 = "";
        for (int i = 0; i < randomArray10.Length; i++) {
            randomStr10 += (randomArray10 [i] + " ");
        }
        print ("10: 10位随机数数组: " + randomStr10);

        //int findNum = Random.Range (0, 99);
        int findNum = randomArray10[8];
    
        //===============================遍历查找位置
        bool isFind = false;
        for (int i = 0; i < randomArray10.Length; i++) {
            if (randomArray10 [i] == findNum) {
                print("10:遍历查找:这个随机数:" + findNum + " 在数组中的位置是: " + i +"");
                isFind = true;
                break;
            }
        }
        if(isFind == false){
            print ("10: -1 遍历查找:随机数为:" + findNum);
        }

        //===============================二分法查找

        for (int i = 1; i < randomArray10.Length; i++) {
            int temp = randomArray10[i];
            int j = i - 1;

            while (j>= 0 && temp < randomArray10 [j]) {
                randomArray10 [j + 1] = randomArray10 [j];
                j--;
            }
            randomArray10 [j + 1] = temp;
        }
        string sortStr10 = "";
        for (int i = 0; i < randomArray10.Length; i++) {
            sortStr10 += (randomArray10 [i] + " ");
        }
        print ("10 排序" + sortStr10);

        int front = 0;
        int end = randomArray10.Length - 1;
        int middle = (front + end) / 2;

        while (front < end && randomArray10[middle] != findNum) {
            if (randomArray10 [middle] < findNum){
                front = middle + 1;
            }
            if(randomArray10[middle] > findNum){
                end = middle - 1;
            }
            middle = (front + end) / 2;
        }
        if (randomArray10 [middle] != findNum) {
            print ("10-1 二查找 没找到");
        } else {
            print ("10: 二分法查找:随机数为:" + findNum + "在数组" + middle + "");
        }
    
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值