1. 程式人生 > >拉格朗日插值查詢法-C描述

拉格朗日插值查詢法-C描述

與二分查詢法相似,也是必須先進行排序,對比二分查詢法只修改一行程式碼


int  binarySearch(void *p, int key ,int size ) {
	int *arr = p;
	//mid = (high + low) / 2  mid = hight + (low - high)* 一個比例
	int count = 0;					// mid = hight + (low - high)* 1.0 * key - arr[high]/arr[low]-arr[high]  //拉格朗日插值
	for (int high = size - 1 , low = 0 ,  mid = 0;  low <= high;
		mid = (high + low) / 2		// 2分查詢法
		//mid = high + (low - high)* 1.0 *( key - arr[high]) / (arr[low] - arr[high])//拉格朗日插值
		)
	{
		count++;
		printf("最大值 %d  最小值 %d  中間值 %d  %d次查詢\n", high, low, mid, count);
		int mindValue = arr[mid];
		if (mindValue == key) 
			return 1;
		else if (mindValue>key) 
			high = mid - 1;
		else 
			low = mid + 1;
	}
	return 0;
}


相關推薦

查詢-C描述

與二分查詢法相似,也是必須先進行排序,對比二分查詢法只修改一行程式碼 int binarySearch(void *p, int key ,int size ) { int *arr = p;

快速排序 and 查詢

private static void QuictSort(int[] zu, int left, int right) { if (left < right) { int i = 0;

及應用

oci cin app .com dmg npe info sina gin 3man6h1yg巫http://shufang.docin.com/sina_6355780928 7DMg布62夏aq撂儼8秤http://www.docin.com/app/user/use

說明 -1 需要 插值 是什麽 col pre rac div   給定 $n$ 個點 $(x_1, y_1), (x_2, y_2), ..., (x_n, y_n)$ , 其中 $x_1, x_2, ..., x_n$ 互不相等, 構造一個最高次不超過 $n-1$ 的多

4559[JLoi2016]成績比較 容斥+

mem otto spa ack input mes mod 只需要 rip 4559: [JLoi2016]成績比較Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 261 Solved: 165[Submit][Statu

Codeforces 622F The Sum of the k-th Powers ( 自然數冪和、 )

n-1 power HERE sig class text name while pow 題目鏈接 題意 : 就是讓你求個自然數冪和、最高次可達 1e6 、求和上限是 1e9 分析 : 題目給出了最高次 k = 1、2、3 時候的自然數冪和求和公式 可以發現求和公式的

Python實現

erp 拉格朗日 input 估計 while 關系 NPU init for 已知sinx的一組x,y對應關系,用拉格朗日插值法估計sin(0.3367)的值. x x0.32 0.34 0.36 y 0.314567 0.333487 0.352274

菜鷄日記——《Python資料分析與挖掘實戰》實驗6-1

實驗6-1 用拉格朗日插值法 題目描述:用拉格朗日插值法對missing_data.xls中表格的空值進行填補。 # p1, lab6 # Fill all of the null values with Lagrange's interpolation # Data file name i

快速排序 二分

快速排序法(泛型) static void Main(string[] args) { Console.WriteLine("請輸入待排序數列(以\",\"分割):"); string _s = Console.ReadLine(); string[] _

學習

有幾個很好的部落格: https://www.cnblogs.com/ECJTUACM-873284962/p/6833391.html   洛谷模板: // luogu-judger-enable-o2 #include<algorithm> #include<io

概述

在看zk-SNARK演算法。這個沒接觸過,所以轉載百度文庫 一般地,若已知 在互不相同 n+1 個點  處的函式值  ( 即該函式過  這n+1個點),則可以考慮構造一個過這n+1 個點的、次數不超過n的多項式   ,使其滿足: 要估計任一點ξ,ξ≠xi,i=0,1

複習小計

拉格朗日插值法 概述 因為n次方的函式影象可以有n+1個點確定(比如說y=kx+b就只用兩個點確定,y=ax2+bx+c,只用三個點就可以確定),所以個n次方的方程給你n+1個x或者y就能確定這個方

bzoj 4162: shlw loves matrix II +矩陣乘法

題意 給定矩陣 M,請計算 M^n,並將其中每一個元素對 1000000007 取模輸出。 對於 100% 資料,滿足 n <= 2^10000;k <= 50; 0 <= Mij < 10^9 +7 分析 我們可以帶入k+1

HDU 4059 -容斥原理 +

http://acm.hdu.edu.cn/showproblem.php?pid=4059 題意: 給出n,n<=1e8 求1到n裡,所有與n互質的數的四次方和 在這裡直接考慮,1+....n^4 減去 所有與n不互質的數的4次方 首先我們分解n的質因子,不會很多

(程式碼實現及部分證明)

6來飛起 圖片的i=j?下面第二個應該為temp = temp / (xi - xj); #include "cstdio" const int MAXN = (int) 1e5 +

(圖文詳解)

對某個多項式函式,已知有給定的k + 1個取值點: 其中對應著自變數的位置,而對應著函式在這個位置的取值。 假設任意兩個不同的xj都互不相同,那麼應用拉格朗日插值公式所得到的拉格朗日插值多項式為: 其中每個為拉格朗日基本多項式(或稱插值基函式),其表示式為: [3] 拉格朗日基本多項式的

對資料探勘中缺失處理

本文參考《Python資料分析與挖掘實戰》一書。 對於資料探勘的缺失值的處理,應該是在資料預處理階段應該首先完成的事,缺失值的處理一般情況下有三種方式:1.刪掉缺失值資料。2不對其進行處理 3.利用插補法對資料進行補充第一種方式是極為不可取的,如果你的樣本數夠多,刪掉資料較少

求自然數冪和】

求自然數冪和: 1<=n<=10^5,1<=k<=10^5 用快速冪; 1<=n<=10^9,1<=k<=10^6 用拉格朗日插值法; 1.什麼是拉格

對於多複雜資料的最優方法---

  在數值分析中,拉格朗日插值法是以法國十八世紀數學家約瑟夫·拉格朗日命名的一種多項式插值方法。許多實際問題中都用函式來表示某種內在聯絡或規律,而不少函式都只能通過實驗和觀測來了解。如對實踐