为我无事侃侃视力
码龄5年
关注
提问 私信
  • 博客:42,352
    社区:230
    42,582
    总访问量
  • 73
    原创
  • 784,654
    排名
  • 1
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
  • 加入CSDN时间: 2020-02-16
博客简介:

Abrahaml的博客

查看详细资料
个人成就
  • 获得10次点赞
  • 内容获得13次评论
  • 获得75次收藏
创作历程
  • 50篇
    2021年
  • 30篇
    2020年
成就勋章
兴趣领域 设置
  • 大数据
    mysql
  • 微软技术
    c#.netasp.net
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

插值查找

/// /// 插值查找,是对二分法查找的优化 /// 二分法: mid = low + 1/2 (high - low) /// 插值查找:mid = low + ((point-array[low])/(array[high]-array[low]))(high-low) /// 插值优化了mid,使之更接近查找数值在有序序列的实际位置 /// /// /// /// /// /// private static int InterpolationSearch(int[] arr, int
原创
发布博客 2021.01.11 ·
210 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

二分查找

/// /// 二分法查找,非递归方法实现,二分查找的条件是原数组有序 /// 没有找到,返回-1;找到了,则返回索引 /// /// /// /// /// private static int BinarySearch(int[] arr, int low, int height, int value) { if (arr == null || arr.Length == 0 || low >= height) { return -1; } int hi = height - 1; i
原创
发布博客 2021.01.11 ·
195 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

顺序查找

/// /// 顺序查找 /// private static int SequenceSearch(int[] arr, int value) { int length = arr.Length; for (int i = 0; i < length; i++) { if(arr[i] == value) { return i; } } return -1; }
原创
发布博客 2021.01.11 ·
216 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

万年历

protected void Page_Load(object sender, EventArgs e) { createCalendar(DateTime.Now.Year, DateTime.Now.Month); } private void createCalendar(int year, int month) { int days = DateTime.DaysInMonth(year, month);//得到当月的天数 DateTime dt = new DateTime(year, month
原创
发布博客 2021.01.11 ·
167 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C# 矩阵运算(加减乘、转置、求逆)

class Matrix { /// <summary> /// 矩阵的转置 /// </summary> /// <param name= "iMatrix "> </param> public static double[,] Transpose(double[,] iMatrix) { int row = iMatrix.GetLength(0);
原创
发布博客 2021.01.11 ·
539 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

桶排序

/// /// 桶排序 /// 类似于哈希表的拉链法,定义一个映射函数,将值放入对应的桶中 /// 最坏时间情况:全部分到一个桶中O(N^2),一般情况为O(NlogN) /// 最好时间情况:每个桶中只有一个数据时最优O(N) /// int bucketNum = arr.Length; /// 映射函数:int bucketIndex = arr[i] * bucketNum / (max + 1); /// /// /// 数组的最大值 /// private static int[] Bu
原创
发布博客 2021.01.11 ·
121 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

归并排序(List版本)

/// /// 归并排序 List版本 /// 将两个(或两个以上)有序表合并成一个新的有序表 /// public static List MergeSort(List list) { int count = list.Count; if (count <= 1) { return list; } int mid = count / 2; List left = new List();//定义左侧List List right = new List();//定义右侧List //
原创
发布博客 2021.01.11 ·
342 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

归并排序

/// /// 归并排序 递归版本 /// 将两个(或两个以上)有序表合并成一个新的有序表 /// private static void MergeSort(int[] arr, int length) { int[] temp = new int[length]; MergeInternalSort(arr, 0, length, temp); } private static void MergeInternalSort(int[] arr, int first, int last, in
原创
发布博客 2021.01.11 ·
90 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

三向切分的快速排序

快速排序在实际应用中会面对大量具有重复元素的数组。相比原生的快排,有巨大的改进潜力。(从O(nlgn)提升到O(n)) E.W.Dijlstra(对,就是Dijkstra最短路径算法的发明者)提出的算法是: 对于每次切分:从数组的左边到右边遍历一次,维护三个指针,其中lt指针使得元素(arr[0]-arr[lt-1])的值均小于切分元素;gt指针使得元素(arr[gt+1]-arr[N-1])的值均大于切分元素;i指针使得元素(arr[lt]-arr[i-1])的值均等于切分元素,(arr[i]-arr[g
原创
发布博客 2021.01.11 ·
388 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

阶乘递归算法

//递归算法 static int DiGui(int n) { int sum = 0; if (0 == n) { return 1; } else { sum = n * DiGui(n-1); } return sum; }
原创
发布博客 2021.01.11 ·
207 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

变异操作

/// /// 变异操作; /// private static void VariationOperate() { int rand = random.Next(0, 50); Console.WriteLine("变异的rand " + rand); if (rand < 5)//5/50 = 0.1的概率进行变异;rand<5; { Console.WriteLine(“开始变异”); int col = random.Next(0, 6); int row = random.Next
原创
发布博客 2021.01.07 ·
695 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

交叉操作

/// /// 交叉操作; /// private static void CrossOperate() { /** bit[0]~bit[5] fit * 4 000 110 12 * 3 001 010 9 * child1 000 010 14 * child2 001 110 5 */ int rand1 = random.Next(0, 6);//0-5; int rand2
原创
发布博客 2021.01.07 ·
549 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

轮盘赌

/// /// 更新下一代; /// 基于轮盘选择选择方法,进行基因型的选择; /// private static void UpdateNext() { // 获取总的fit; double totalFitValue = 0; for (int i = 0; i < chromosomes.Count; i++) { //适应度为负数的取0; if (chromosomes[i].fitValue <= 0) { totalFitValue += 0; } else { totalFi
原创
发布博客 2021.01.07 ·
400 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

算法时间测试

C#算法时间测试类Timing: public class Timing { TimeSpan startingtime; TimeSpan duration; public Timing() { startingtime = new TimeSpan(0); duration = new TimeSpan(0); } public void stoptime() { d
原创
发布博客 2021.01.07 ·
171 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

凸包算法

private List calcConvexHull(List list) { List resPoint = new List(); //查找最小坐标点 int minIndex = 0; for (int i = 1; i < list.Count; i++) { if (list[i].Y < list[minIndex].Y) { minIndex = i; } } Point minPoint = list[minIndex]; resPoint.Add(list[minIndex]
原创
发布博客 2021.01.07 ·
134 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

在1~10000的整数中,找出同时符合以下条件的数:a.必须是质数。b.该数字各位数字之和为偶数,如数字12345,各位数字之和为1+2+3+4+5=15,不是偶数。

using System; using System.Collections.Generic; class program { static void Mian(string[] args) { int N =1000; List<int> primes = new List<int>(); primes.Add(2); Console.Write(2+" "); for(int
原创
发布博客 2021.01.07 ·
401 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

九九乘法表

static void Mu() { string t = string.Empty; for (int i = 1; i < 10; i++) { for (int j = 1; j <= i; j++) { t = string.Format("{0}*{1}={2} “, j, i, (j * i)); Console.Write(t); //if (j * i < 82) // Console.Write(” “); if (i == j) Console.Write(”
原创
发布博客 2021.01.07 ·
126 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

1、1、1、2、3、5、8、13、21、34,....用C#递归写出算法,算出第30个数。

using System; class Program { static in F(int i) { if(i<=0) return 0; else if(i>0 && i<=2) return 1; else return F(i-1) + F(i-2); } static void Main(string[] args) { int n = F(30); Console.WriteLine(n.ToString());
原创
发布博客 2021.01.07 ·
967 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

一个6位数乘以一个3位数,得到一个结果。但不清楚6位数的两个数字是什么,而且结果中有一位数字也不清楚,请编程找出问好代表的数字,答案可能有多个。

for (int a = 0; a < 10; a++) { for (int b = 0; b < 10; b++) { for (int c = 0; c < 10; c++) { if ((120560 + a + b * 1000) * 123 == 15404987 + c * 10000) { Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine©; } } } } Console.Read();
原创
发布博客 2021.01.07 ·
512 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

堆排序

/* 堆排序是一种选择排序,时间复杂度为O(nlog2n)。 堆排序的特点是: 在排序过程中,将待排序数组看成是一棵完全二叉树的顺序存储结构, 利用完全二叉树中父结点和子结点之间的内在关系,在当前无序区中选择关键字最大(或最小)的记录。 基本思想 1.将待排序数组调整为一个大根堆。大根堆的堆顶元素就是这个堆中最大的元素。 2.将大根堆的堆顶元素和无序区最后一个元素交换,并将无序区最后一个位置列入有序区,然后将新的无序区调整为大根堆。 3.重复操作,直到无序区消失为止。 初始时,整个数组为无序区。每一次
原创
发布博客 2021.01.07 ·
115 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多