
算法
HanghangzZ
一个菜鸟在学习的过程中遇到很多问题,希望将这些问题发表出来,能帮助到别的菜鸟。
展开
-
排序算法——选择排序——c
//选择排序算法#include<stdio.h>//升序 void selectsort_1( int a[],int n ){ int i,j,k,t; //每次选出i+1小的那个数,然后放到a[i] for( i=0;i<n-1;i++ ){ k=i; //选出第 i+1小的数 for( j=i+1;j<n;j++ ){ if( a[j]<a[k] ){ //将较小的数的下标位置给k,在后面的循环中查看是否有比它.原创 2020-06-02 22:34:48 · 175 阅读 · 0 评论 -
排序算法——冒泡排序算法以及优化——c
//未优化——冒泡排序算法 #include<stdio.h>//升序void bubblesort_1( int a[],int n ){ int i,j,t; for( i=0;i<n-1;i++ ){ //第i轮排序 for( j=0;j<n-i-1;j++ ){ //交换两个元素位置 if( a[j]>a[j+1] ){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } .原创 2020-06-01 22:46:20 · 411 阅读 · 0 评论 -
排序算法——直接插入排序——c
//直接插入排序#include<stdio.h>//升序 void insertsort_1( int s[],int n ){ int i,j; for( i=2;i<n;i++ ){ if( s[i]<s[i-1] ){ s[0]=s[i]; //把需要前移的数安置到临时区s[0] for( j=i-1;s[0]<s[j];j-- ){ s[j+1]=s[j]; //把比安置.原创 2020-06-01 22:13:28 · 228 阅读 · 0 评论 -
牛顿迭代法的程序实现例题———c——新人文
我们先来讲述牛顿迭代法的原理。假设xk是f(x)的一个近似根,将f(x)在x处展开的多项式可表示为f(x)=f(xk)+f’(xk)*(x-xk)+f’’(xk)*(x-xk)^2/2!+……此处简便计算 ,以前两项近似代替f(x),则近似方程为f(x)=f(xk)+f’(xk)*(x-xk)=0即x=xk-f(xk)/f’(xk)假设f(xk)!=0.则令其解为xk+1, //这里的k和k+1是下标,这个csdn'的编辑器我不...原创 2020-06-01 17:10:16 · 2543 阅读 · 0 评论 -
用梯形法求定积分程序实现例题——c——新人文
以下为梯形法原理。题目: b 梯形法求数值积分。F(x)=∫ (4-X*X)^0.5dx。 a#include<stdio.h>#include<math.h>int main(){ double step=1E-7,a,b,c,sum=0; scanf(...原创 2020-06-01 16:22:44 · 2590 阅读 · 0 评论 -
二分迭代法求方程零根的程序实现——c——新人文
当f(x)在区间[a,b]上连续,且f(a)*f(b)<0。根据连续函数的性质可知f(x)=0在[a,b]上至少有一个根。若f(x)在区间[a,b]上单调,可知f(x)=0在[a,b]上有唯一一个根。假设一个 flag 为正小数, 通过二分迭代法求f(x)=0方程根的简单思路如下:(1)计算区间 [a,b] 的中点 m=(a+b)/2, 如果m的绝对值小于flag,则我们可以近似的将m看作该方程的零根。如果f(m)的绝对值大于flag,则执行(2)(2)f(b)*f(m)>0,则 b=m原创 2020-05-30 19:58:27 · 773 阅读 · 0 评论