我试图分析一个简单算法的Big- O -otation,并且我已经用了一段时间了.所以我根据以下代码的规则进行分析并试图弄清楚这是否正确:
public int Add()
{
int total = 0; //Step 1
foreach(var item in list) //Step 2
{
if(item.value == 1) //Step 3
{
total += 1; //Step 4
}
}
return total;
}
Run Code Online (Sandbox Code Playgroud)
如果指定变量或集合,则在这种情况下,根据Big O的规则确定复杂度为O(1).所以第一阶段将是O(1) - 这意味着无论输入大小是什么,程序将执行相同的时间和内存空间.
第二步是foreach循环.循环中有一点很清楚.根据输入,循环迭代或运行.作为示例,对于输入10,循环迭代10次并且持续20次,20次.完全取决于输入.根据Big O的规则,复杂性将是O(n) - n是输入的数量.因此,在上面的代码中,循环根据列表中的项目数进行迭代.
在此步骤中,我们定义一个确定条件检查的变量(参见编码中的步骤3).在这种情况下,根据Big O规则,复杂度为O(1).
以相同的方式,在步骤4中,也没有变化(参见编码中的步骤4).如果条件检查为真,则total变量将值递增1.因此我们写 - 复杂度O(1).
因此,如果上述计算是完美的,那么最终的复杂性如下:
O(1) + O(n) + O(1) + O(1) or (O(1) + O(n) * O(1) + …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 ASP.NET MVC 项目中使用三层体系结构和存储库模式。但在某些情况下,三层架构和存储库模式看起来几乎相同。所以我尝试研究以下内容以使其更加清晰:
在那之后,我进入了以下实现代码,并希望有一些建议以更有效的方式改进实现:
型号- 部门类:
public class Department
{
public int DepartmentID { get; set; }
public string Code { get; set; }
public string DepartmentName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
接口- IRepository 接口:
public interface IRepository
{
public int Add(Student aStudent); //For Adding Students
public int Add(Department aDepartment); //For Adding Departments
}
Run Code Online (Sandbox Code Playgroud)
DAL - DepartmentGateway 类:
public class DepartmentGateway : IRepository
{
/****Repository Pattern - Starts****/
Gateway aGateway = new Gateway();
public int …Run Code Online (Sandbox Code Playgroud) 我使用了一个简单的Windows服务来使方法在特定时间工作,它工作正常.之后我已经尝试过:
protected override void OnStart(string[] args)
{
this.WriteToFile("Simple Service started {0}");
this.ScheduleService();
}
protected override void OnStop()
{
this.WriteToFile("Simple Service stopped {0}");
this.Schedular.Dispose();
}
private Timer Schedular;
public void ScheduleService()
{
try
{
Schedular = new Timer(new TimerCallback(SchedularCallback));
string mode = ConfigurationManager.AppSettings["Mode"].ToUpper();
this.WriteToFile("Simple Service Mode: " + mode + " {0}");
//Rest of the code here
}
catch(Exception ex)
{
WriteToFile("Simple Service Error on: {0} " + ex.Message + ex.StackTrace);
//Stop the Windows Service.
using (System.ServiceProcess.ServiceController serviceController = new System.ServiceProcess.ServiceController("SimpleService")) …Run Code Online (Sandbox Code Playgroud) 我正在从事一个目前已经建成并投入运行的项目。但是当我尝试将指纹从设备插入数据库表时出现问题。让我写一下它之前运行良好。但是当我设置新计算机或将项目移动到新环境中时,它会抛出异常:
由于以下错误,检索 CLSID 为 {00853A19-BD51-419B-9269-2DABE57EB61F} 的组件的 COM 类工厂失败:80040154 类未注册(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。
这是一个使用ZkemKeeper的指纹考勤系统,dll文件随项目一起附上。这是代码片段:
/**This is a list of the users from database that uses fingerprint system - Starts**/
List<AttMachineBO> lstfrom = new List<AttMachineBO>();
for (int i = 0; i < dgv_Machine.Rows.Count; i++)
{
if (dgv_Machine.Rows[i].Cells[0].Value == null)
{
dgv_Machine.Rows[i].Cells[0].Value = false;
}
if ((bool)dgv_Machine.Rows[i].Cells[0].Value == true)
{
AttMachineBO obj = new AttMachineBO();
obj.Mechine_No = dgv_Machine.Rows[i].Cells[1].Value.ToString();
obj.Machine_Name = dgv_Machine.Rows[i].Cells[2].Value.ToString();
obj.IP_Address = dgv_Machine.Rows[i].Cells[3].Value.ToString().Trim();
lstfrom.Add(obj);
}
}
/**This is a list of the users …Run Code Online (Sandbox Code Playgroud) 在过去的几天里,我一直在阅读一本关于数据结构的电子书,坦率地说,许多事情已经从我的脑海里消失了.只是审查它们并试图再次澄清.我正在浏览哈希表并再次熟悉它.所以我知道并且听说过,SQL Server在内部使用散列表,stackoverflow.com和forums.asp.net的许多线程询问在SQL Server中存储临时数据时是否创建散列表.因此,让我举一个我在使用临时表的存储过程中使用的示例:(避免它并且它太长了.仅举例)
第一名:
CREATE PROCEDURE [dbo].[Orders]
@OrderLine int
AS
BEGIN
DECLARE @t1 TABLE(Date1 date,
OrderID VARCHAR(MAX),
EmployeeName VARCHAR(MAX),
DeliveryDate date,
StoreName VARCHAR(MAX),
DeliveryAddress VARCHAR(MAX),
ItemName VARCHAR(MAX),
Quantity FLOAT)
INSERT INTO @t1(Date1, OrderID, EmployeeName, DeliveryDate, StoreName, DeliveryAddress, ItemName, Quantity)
(SELECT DISTINCT
CONVERT(VARCHAR(11), DemandOrder.POCreationDate, 6) AS DemandOrderDate,
DemandOrder.OrderID, EmployeeDetails.EmployeeName,
CONVERT(DATE, DemandOrder.DeliveryDate) AS ExpectedDeliveryDate,
StoreDetails.StoreName,
DemandOrder.DeliveryAddress, Item.ItemName,
DemandOrderLine.Quantity
FROM
DemandOrder
INNER JOIN
DemandOrderLine ON DemandOrder.OrderID = DemandOrderLine.OrderID
INNER JOIN
Item on DemandOrderLine.ItemID=Item.ItemID
INNER JOIN
EmployeeDetails ON EmployeeDetails.EmployeeID = DemandOrder.EmployeeID
INNER JOIN
StoreDetails …Run Code Online (Sandbox Code Playgroud) c# ×2
sql ×2
algorithm ×1
asp.net ×1
asp.net-mvc ×1
big-o ×1
device ×1
dll ×1
hashtable ×1
sql-server ×1
three-tier ×1
web-services ×1
zkemkeeper ×1