周记3

Posted respects

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了周记3相关的知识,希望对你有一定的参考价值。

数据结构

#include <stdio.h>
#include <stdlib.h>
int search(int arr[],int len,int key)
{
    int mid,low = 1;                   
	int high = len;
	//printf("%d!",high);
	while(low <= high)
	{
		mid = (low+high)/2;  
		//printf("%d ",mid);
		if(key == arr[mid])  
		{
			return mid+1; 
			break;
		}
		else if(key>arr[mid])             
			low = mid+1;
		else                                      
			high = mid-1;
	}
	return 0;  
}

int BSR(int arr[],int key,int low ,int high)
{
    
    if (low > high)
        return 0;
    int mid = low + (high - low)/2;
    if (arr[mid] == key)
        return mid+1;
    else
    if (key < arr[mid])
        return BSR(arr,key,low,mid-1);
    else
        return BSR(arr,key,mid+1,high);
}
int main()
{
    int key;
    int position1,position2;
    int arr[] = {3,5,7,11,13,15};
    printf("请输入要查找的数:");
    scanf("%d",&key);
    //printf("
(如果这个数存在我将会返回它所对应的位置,否则返回0)");
    printf("------------------------------------------------
");
    /*
    //数组查找
    position1 = search(arr,sizeof(arr)/sizeof(arr[0]),key);
    if (position2 == 0)
        printf("这个不存在数组中!(0)");
    else
        printf("这个数在数组中的位置是:%d",position2);
    */
    
    //递归查找
    position2 = BSR(arr,key,0,sizeof(arr)/sizeof(arr[0]));
    if (position2 == 0)
        printf("这个不存在数组中!(0)");
    else
        printf("这个数在数组中的位置是:%d",position2);
        
    //printf("%d",sizeof(arr)/sizeof(arr[0]));
    //用sizeof求一个数组的长度,但是arr是一个整形每个元素占
    //4个字节,所以求数组长度的时候要除4,就是除一个字节大小
     return 0;
}

数据结构题目

以上代码题目分别是:
实现折半查找函数,查找指定元素,若元素在列表中存在,则返回序号,若不存在,则返回0,例如,已知序列“3,5,7,11,13,15”,若查找元素7,则返回3,若查找元素9,则返回0,其它具体要求如下:
1. 待查记录为整数序列;
2. 待查记录从数组下标1处开始存储;
3. 待查记录必须有序。

以上是关于周记3的主要内容,如果未能解决你的问题,请参考以下文章

第五周周记

工作周记 - 第五周 (2016/06/20 - 2016/06/25)

PSP(3.23——3.29)以及周记录

3月21日至3月27日周记

周记3

周记2020.3.2~2020.3.8