zoukankan      html  css  js  c++  java
  • 每周学习日志(七)

    编写一个函数,利用折半查找算法在一个有序表中插入一个元素,并保持表的有序性。

    例如,在一个有序表{1,3,5,7,9}中,查找元素5,因为元素存在,则有序表不变;若查找元素6,则该有序表成为{1,3,5,6,7,9}。

    头文件

    #include <stdio.h>
    

    过程函数BinSrch

    int BinSrch(int a[], int n, int k)
    {
        int low,high,mid;
    	low=1;
    	high=n;
    	while(low<=high)
    	{
    		mid=(low+high)/2;
    		if(k==a[mid])
    		{
    			printf("it has already been in the a
    ");
    			return 0;
    		}
    		else if(k<a[mid])
    			high=mid-1;
    		else
    			low=mid+1;
    	}//不存在 执行下面程序 说明已找到插入点
    	for(int i=n;i>=low;i--)//后移
    		a[i+1]=a[i];
    		a[low]=k;//插入
    	return 1;
    }
    

    主函数main

    void main()
    {
        int a[7]={0,1,3,5,7,9};
    	int r=BinSrch(a,5,6);
    	int i;
    	if(r=0)
    	for(i=1;i<=5;i++)
    		printf("%d",a[i]);
    	else
    	for(i=1;i<=6;i++)
    		printf("%d",a[i]);
    	printf("
    ");
    }
    
  • 相关阅读:
    zabbix
    amoeba 读写分离
    部署MySQL-主从异步复制
    MySQL 基本操作
    mysql 完整备份和恢复
    正则匹配表达式各个符文表达的意义
    Include和require的区别
    nosql和Mysql的区别
    Git与SVN的区别
    mongodb与mysql区别
  • 原文地址:https://www.cnblogs.com/wananouo/p/13073555.html
Copyright © 2011-2022 走看看