- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 快速排序(递归与非递归)c语言实现
1、算法设计原理分析快速排序是对冒泡排序的一种改进,快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分的所有数据要小,再按这种方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,使整个数据变成有序序列。基本步骤为:1)先从数列中取出一个数作为基准数;2)分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3)再对左右区间重复第二步,直到各区间只有一个数。非递归实现方法,需要把递归实现中函数调用部分换为迭代中调用函数,
2022-02-15 13:25:43
2277
原创 牛顿迭代法解一元三次方程
1、算法设计原理分析使用牛顿迭代法求一元高次方程的解,设x是f(x) = 0的根,选取x0作为x初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f’(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f’(x0),称x1为x的一次近似值。过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴交点的横坐标 x2 = x1-f(x1)/f’(x1),称x2为x的二次近似值。重复以上过程,得r的近似值序列,其中x(n+1
2022-01-25 13:05:24
4402
原创 表达式的值
给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。输入为一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“+”和乘法运算符“*”,且没有括号,所有参与运算的数字均为0到 231-1之间的整数。输入数据保证这一行只有0-9、+、*这 12种字符。输出为一个整数,表示这个表达式的值。
2022-01-18 12:32:03
1076
原创 结构体练习
有n 个学生,每个学生的数据包括学号、姓名、3 门课的成绩。从键盘先输入数字n,然后依次输入n个学生数据,要求输出每个学生的各项数据及3 门课平均成绩,以及最高平均分的学生各项数据(包括学号、姓名、3 门课的成绩、平均分数)
2022-01-18 12:29:38
754
原创 求圆周率算法(割圆术)c语言实现
1、算法设计原理分析利用周长为1的圆的周长为2Π,采用割圆术,从开始的正六边形(周长为6),循环切割求正12边形、正24边形……的边长(勾股定理),从而求出正多边形的周长,来近似求解出2Π的值。整个算法采用循环,求解正多边形的边长à正多边形的周长à周长的一半。2、程序设计#include <stdio.h>#include <math.h>void pai(int n);int main(){ int n; printf...
2022-01-18 12:08:37
4187
2
原创 傅里叶变换算法c语言实现(递归与非递归)
傅里叶变换算法把傅里叶变换公式进行拆分,按奇偶进行分组,使之转外为两个T(n/2)的计算式。这样就可以找到了递归特性,可以一直拆分下去,直到一组只有一个数值。递归算法实现则可以为在每次递归中对偶数组进行再次划分进行递归,同样对奇数组进行再次划分进行递归。其次利用傅里叶变化的周期性为N/2和对称性,可以推导出公式X(k)=G(k)+W*H(k),和X(K+n/2)= G(k)-W*H(k) ,所以每次只需要计算一半的计算量。其中系数W可以采用欧拉公式展开计算。非递归实现则可以参考
2021-12-18 22:45:36
7402
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人