主要功能如下
数据访问抽象基础类 主要是访问Oracle数据库主要实现如下功能

  1. .数据访问基础类(基于Oracle),主要是用来访问Oracle数据库的。
  2. .得到最大值;是否存在;是否存在(基于OracleParameter );
  3. .执行SQL语句,返回影响的记录数;
  4. .执行多条SQL语句,实现数据库事务;
  5. .执行带一个存储过程参数的的SQL语句;
  6. .向数据库里插入图像格式的字段(和上面情况类似的另一种实例);
  7. .执行一条计算查询结果语句,返回查询结果(object);
  8. .执行查询语句,返回OracleDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close );
  9. .执行查询语句,返回DataSet;
  10. .执行SQL语句,返回影响的记录数;
  11. .执行多条SQL语句,实现数据库事务;
  12. .执行一条计算查询结果语句,返回查询结果(object);
  13. .执行查询语句,返回OracleDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close );
  14. .执行查询语句,返回DataSet;
  15. .执行存储过程 返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close );
  16. .执行存储过程;构建 OracleCommand 对象(用来返回一个结果集,而不是一个整数值);
  17. .执行存储过程,返回影响的行数;
  18. .创建 OracleCommand 对象实例(用来返回一个整数值)
  1. /// <summary>
  2. /// 编 码 人:苏飞
  3. /// 联系方式:361983679
  4. /// 更新网站:[url=http://www.sufeinet.com/thread-655-1-1.html]http://www.sufeinet.com/thread-655-1-1.html[/url]
  5. /// </summary>
  6. using System;
  7. using System.Collections;
  8. using System.Collections.Specialized;
  9. using System.Data;
  10. using System.Data.OracleClient;
  11. using System.Configuration;
  12.  
  13. namespace Maticsoft.DBUtility
  14. {
  15. /// <summary>
  16. /// 数据访问基础类(基于Oracle)
  17. /// 可以用户可以修改满足自己项目的需要。
  18. /// </summary>
  19. public abstract class DbHelperOra
  20. {
  21. //数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库.
  22. public static string connectionString = "连接字符串";
  23. public DbHelperOra()
  24. {
  25. }
  26.  
  27. #region 公用方法
  28.  
  29. public static int GetMaxID(string FieldName, string TableName)
  30. {
  31. string strsql = "select max(" + FieldName + ")+1 from " + TableName;
  32. object obj = GetSingle(strsql);
  33. if (obj == null)
  34. {
  35. return ;
  36. }
  37. else
  38. {
  39. return int.Parse(obj.ToString());
  40. }
  41. }
  42. public static bool Exists(string strSql)
  43. {
  44. object obj = GetSingle(strSql);
  45. int cmdresult;
  46. if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
  47. {
  48. cmdresult = ;
  49. }
  50. else
  51. {
  52. cmdresult = int.Parse(obj.ToString());
  53. }
  54. if (cmdresult == )
  55. {
  56. return false;
  57. }
  58. else
  59. {
  60. return true;
  61. }
  62. }
  63.  
  64. public static bool Exists(string strSql, params OracleParameter[] cmdParms)
  65. {
  66. object obj = GetSingle(strSql, cmdParms);
  67. int cmdresult;
  68. if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
  69. {
  70. cmdresult = ;
  71. }
  72. else
  73. {
  74. cmdresult = int.Parse(obj.ToString());
  75. }
  76. if (cmdresult == )
  77. {
  78. return false;
  79. }
  80. else
  81. {
  82. return true;
  83. }
  84. }
  85.  
  86. #endregion
  87.  
  88. #region 执行简单SQL语句
  89.  
  90. /// <summary>
  91. /// 执行SQL语句,返回影响的记录数
  92. /// </summary>
  93. /// <param name="SQLString">SQL语句</param>
  94. /// <returns>影响的记录数</returns>
  95. public static int ExecuteSql(string SQLString)
  96. {
  97. using (OracleConnection connection = new OracleConnection(connectionString))
  98. {
  99. using (OracleCommand cmd = new OracleCommand(SQLString,connection))
  100. {
  101. try
  102. {
  103. connection.Open();
  104. int rows=cmd.ExecuteNonQuery();
  105. return rows;
  106. }
  107. catch(System.Data.OracleClient.OracleException E)
  108. {
  109. connection.Close();
  110. throw new Exception(E.Message);
  111. }
  112. }
  113. }
  114. }
  115.  
  116. /// <summary>
  117. /// 执行多条SQL语句,实现数据库事务。
  118. /// </summary>
  119. /// <param name="SQLStringList">多条SQL语句</param>
  120. public static void ExecuteSqlTran(ArrayList SQLStringList)
  121. {
  122. using (OracleConnection conn = new OracleConnection(connectionString))
  123. {
  124. conn.Open();
  125. OracleCommand cmd = new OracleCommand();
  126. cmd.Connection=conn;
  127. OracleTransaction tx=conn.BeginTransaction();
  128. cmd.Transaction=tx;
  129. try
  130. {
  131. for(int n=;n<SQLStringList.Count;n++)
  132. {
  133. string strsql=SQLStringList[n].ToString();
  134. if (strsql.Trim().Length>)
  135. {
  136. cmd.CommandText=strsql;
  137. cmd.ExecuteNonQuery();
  138. }
  139. }
  140. tx.Commit();
  141. }
  142. catch(System.Data.OracleClient.OracleException E)
  143. {
  144. tx.Rollback();
  145. throw new Exception(E.Message);
  146. }
  147. }
  148. }
  149. /// <summary>
  150. /// 执行带一个存储过程参数的的SQL语句。
  151. /// </summary>
  152. /// <param name="SQLString">SQL语句</param>
  153. /// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
  154. /// <returns>影响的记录数</returns>
  155. public static int ExecuteSql(string SQLString,string content)
  156. {
  157. using (OracleConnection connection = new OracleConnection(connectionString))
  158. {
  159. OracleCommand cmd = new OracleCommand(SQLString,connection);
  160. System.Data.OracleClient.OracleParameter myParameter = new System.Data.OracleClient.OracleParameter("@content", OracleType.NVarChar);
  161. myParameter.Value = content ;
  162. cmd.Parameters.Add(myParameter);
  163. try
  164. {
  165. connection.Open();
  166. int rows=cmd.ExecuteNonQuery();
  167. return rows;
  168. }
  169. catch(System.Data.OracleClient.OracleException E)
  170. {
  171. throw new Exception(E.Message);
  172. }
  173. finally
  174. {
  175. cmd.Dispose();
  176. connection.Close();
  177. }
  178. }
  179. }
  180. /// <summary>
  181. /// 向数据库里插入图像格式的字段(和上面情况类似的另一种实例)
  182. /// </summary>
  183. /// <param name="strSQL">SQL语句</param>
  184. /// <param name="fs">图像字节,数据库的字段类型为image的情况</param>
  185. /// <returns>影响的记录数</returns>
  186. public static int ExecuteSqlInsertImg(string strSQL,byte[] fs)
  187. {
  188. using (OracleConnection connection = new OracleConnection(connectionString))
  189. {
  190. OracleCommand cmd = new OracleCommand(strSQL,connection);
  191. System.Data.OracleClient.OracleParameter myParameter = new System.Data.OracleClient.OracleParameter("@fs", OracleType.LongRaw);
  192. myParameter.Value = fs ;
  193. cmd.Parameters.Add(myParameter);
  194. try
  195. {
  196. connection.Open();
  197. int rows=cmd.ExecuteNonQuery();
  198. return rows;
  199. }
  200. catch(System.Data.OracleClient.OracleException E)
  201. {
  202. throw new Exception(E.Message);
  203. }
  204. finally
  205. {
  206. cmd.Dispose();
  207. connection.Close();
  208. }
  209. }
  210. }
  211.  
  212. /// <summary>
  213. /// 执行一条计算查询结果语句,返回查询结果(object)。
  214. /// </summary>
  215. /// <param name="SQLString">计算查询结果语句</param>
  216. /// <returns>查询结果(object)</returns>
  217. public static object GetSingle(string SQLString)
  218. {
  219. using (OracleConnection connection = new OracleConnection(connectionString))
  220. {
  221. using(OracleCommand cmd = new OracleCommand(SQLString,connection))
  222. {
  223. try
  224. {
  225. connection.Open();
  226. object obj = cmd.ExecuteScalar();
  227. if((Object.Equals(obj,null))||(Object.Equals(obj,System.DBNull.Value)))
  228. {
  229. return null;
  230. }
  231. else
  232. {
  233. return obj;
  234. }
  235. }
  236. catch(System.Data.OracleClient.OracleException e)
  237. {
  238. connection.Close();
  239. throw new Exception(e.Message);
  240. }
  241. }
  242. }
  243. }
  244. /// <summary>
  245. /// 执行查询语句,返回OracleDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
  246. /// </summary>
  247. /// <param name="strSQL">查询语句</param>
  248. /// <returns>OracleDataReader</returns>
  249. public static OracleDataReader ExecuteReader(string strSQL)
  250. {
  251. OracleConnection connection = new OracleConnection(connectionString);
  252. OracleCommand cmd = new OracleCommand(strSQL,connection);
  253. try
  254. {
  255. connection.Open();
  256. OracleDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  257. return myReader;
  258. }
  259. catch(System.Data.OracleClient.OracleException e)
  260. {
  261. throw new Exception(e.Message);
  262. }
  263.  
  264. }
  265. /// <summary>
  266. /// 执行查询语句,返回DataSet
  267. /// </summary>
  268. /// <param name="SQLString">查询语句</param>
  269. /// <returns>DataSet</returns>
  270. public static DataSet Query(string SQLString)
  271. {
  272. using (OracleConnection connection = new OracleConnection(connectionString))
  273. {
  274. DataSet ds = new DataSet();
  275. try
  276. {
  277. connection.Open();
  278. OracleDataAdapter command = new OracleDataAdapter(SQLString,connection);
  279. command.Fill(ds,"ds");
  280. }
  281. catch(System.Data.OracleClient.OracleException ex)
  282. {
  283. throw new Exception(ex.Message);
  284. }
  285. return ds;
  286. }
  287. }
  288.  
  289. #endregion
  290.  
  291. #region 执行带参数的SQL语句
  292.  
  293. /// <summary>
  294. /// 执行SQL语句,返回影响的记录数
  295. /// </summary>
  296. /// <param name="SQLString">SQL语句</param>
  297. /// <returns>影响的记录数</returns>
  298. public static int ExecuteSql(string SQLString,params OracleParameter[] cmdParms)
  299. {
  300. using (OracleConnection connection = new OracleConnection(connectionString))
  301. {
  302. using (OracleCommand cmd = new OracleCommand())
  303. {
  304. try
  305. {
  306. PrepareCommand(cmd, connection, null,SQLString, cmdParms);
  307. int rows=cmd.ExecuteNonQuery();
  308. cmd.Parameters.Clear();
  309. return rows;
  310. }
  311. catch(System.Data.OracleClient.OracleException E)
  312. {
  313. throw new Exception(E.Message);
  314. }
  315. }
  316. }
  317. }
  318.  
  319. /// <summary>
  320. /// 执行多条SQL语句,实现数据库事务。
  321. /// </summary>
  322. /// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的OracleParameter[])</param>
  323. public static void ExecuteSqlTran(Hashtable SQLStringList)
  324. {
  325. using (OracleConnection conn = new OracleConnection(connectionString))
  326. {
  327. conn.Open();
  328. using (OracleTransaction trans = conn.BeginTransaction())
  329. {
  330. OracleCommand cmd = new OracleCommand();
  331. try
  332. {
  333. //循环
  334. foreach (DictionaryEntry myDE in SQLStringList)
  335. {
  336. string cmdText=myDE.Key.ToString();
  337. OracleParameter[] cmdParms=(OracleParameter[])myDE.Value;
  338. PrepareCommand(cmd,conn,trans,cmdText, cmdParms);
  339. int val = cmd.ExecuteNonQuery();
  340. cmd.Parameters.Clear();
  341.  
  342. trans.Commit();
  343. }
  344. }
  345. catch
  346. {
  347. trans.Rollback();
  348. throw;
  349. }
  350. }
  351. }
  352. }
  353.  
  354. /// <summary>
  355. /// 执行一条计算查询结果语句,返回查询结果(object)。
  356. /// </summary>
  357. /// <param name="SQLString">计算查询结果语句</param>
  358. /// <returns>查询结果(object)</returns>
  359. public static object GetSingle(string SQLString,params OracleParameter[] cmdParms)
  360. {
  361. using (OracleConnection connection = new OracleConnection(connectionString))
  362. {
  363. using (OracleCommand cmd = new OracleCommand())
  364. {
  365. try
  366. {
  367. PrepareCommand(cmd, connection, null,SQLString, cmdParms);
  368. object obj = cmd.ExecuteScalar();
  369. cmd.Parameters.Clear();
  370. if((Object.Equals(obj,null))||(Object.Equals(obj,System.DBNull.Value)))
  371. {
  372. return null;
  373. }
  374. else
  375. {
  376. return obj;
  377. }
  378. }
  379. catch(System.Data.OracleClient.OracleException e)
  380. {
  381. throw new Exception(e.Message);
  382. }
  383. }
  384. }
  385. }
  386.  
  387. /// <summary>
  388. /// 执行查询语句,返回OracleDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
  389. /// </summary>
  390. /// <param name="strSQL">查询语句</param>
  391. /// <returns>OracleDataReader</returns>
  392. public static OracleDataReader ExecuteReader(string SQLString,params OracleParameter[] cmdParms)
  393. {
  394. OracleConnection connection = new OracleConnection(connectionString);
  395. OracleCommand cmd = new OracleCommand();
  396. try
  397. {
  398. PrepareCommand(cmd, connection, null,SQLString, cmdParms);
  399. OracleDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  400. cmd.Parameters.Clear();
  401. return myReader;
  402. }
  403. catch(System.Data.OracleClient.OracleException e)
  404. {
  405. throw new Exception(e.Message);
  406. }
  407.  
  408. }
  409.  
  410. /// <summary>
  411. /// 执行查询语句,返回DataSet
  412. /// </summary>
  413. /// <param name="SQLString">查询语句</param>
  414. /// <returns>DataSet</returns>
  415. public static DataSet Query(string SQLString,params OracleParameter[] cmdParms)
  416. {
  417. using (OracleConnection connection = new OracleConnection(connectionString))
  418. {
  419. OracleCommand cmd = new OracleCommand();
  420. PrepareCommand(cmd, connection, null,SQLString, cmdParms);
  421. using( OracleDataAdapter da = new OracleDataAdapter(cmd) )
  422. {
  423. DataSet ds = new DataSet();
  424. try
  425. {
  426. da.Fill(ds,"ds");
  427. cmd.Parameters.Clear();
  428. }
  429. catch(System.Data.OracleClient.OracleException ex)
  430. {
  431. throw new Exception(ex.Message);
  432. }
  433. return ds;
  434. }
  435. }
  436. }
  437.  
  438. private static void PrepareCommand(OracleCommand cmd,OracleConnection conn,OracleTransaction trans, string cmdText, OracleParameter[] cmdParms)
  439. {
  440. if (conn.State != ConnectionState.Open)
  441. conn.Open();
  442. cmd.Connection = conn;
  443. cmd.CommandText = cmdText;
  444. if (trans != null)
  445. cmd.Transaction = trans;
  446. cmd.CommandType = CommandType.Text;//cmdType;
  447. if (cmdParms != null)
  448. {
  449. foreach (OracleParameter parm in cmdParms)
  450. cmd.Parameters.Add(parm);
  451. }
  452. }
  453.  
  454. #endregion
  455.  
  456. #region 存储过程操作
  457.  
  458. /// <summary>
  459. /// 执行存储过程 返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
  460. /// </summary>
  461. /// <param name="storedProcName">存储过程名</param>
  462. /// <param name="parameters">存储过程参数</param>
  463. /// <returns>OracleDataReader</returns>
  464. public static OracleDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
  465. {
  466. OracleConnection connection = new OracleConnection(connectionString);
  467. OracleDataReader returnReader;
  468. connection.Open();
  469. OracleCommand command = BuildQueryCommand( connection,storedProcName, parameters );
  470. command.CommandType = CommandType.StoredProcedure;
  471. returnReader = command.ExecuteReader(CommandBehavior.CloseConnection);
  472. return returnReader;
  473. }
  474.  
  475. /// <summary>
  476. /// 执行存储过程
  477. /// </summary>
  478. /// <param name="storedProcName">存储过程名</param>
  479. /// <param name="parameters">存储过程参数</param>
  480. /// <param name="tableName">DataSet结果中的表名</param>
  481. /// <returns>DataSet</returns>
  482. public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName )
  483. {
  484. using (OracleConnection connection = new OracleConnection(connectionString))
  485. {
  486. DataSet dataSet = new DataSet();
  487. connection.Open();
  488. OracleDataAdapter sqlDA = new OracleDataAdapter();
  489. sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters );
  490. sqlDA.Fill( dataSet, tableName );
  491. connection.Close();
  492. return dataSet;
  493. }
  494. }
  495.  
  496. /// <summary>
  497. /// 构建 OracleCommand 对象(用来返回一个结果集,而不是一个整数值)
  498. /// </summary>
  499. /// <param name="connection">数据库连接</param>
  500. /// <param name="storedProcName">存储过程名</param>
  501. /// <param name="parameters">存储过程参数</param>
  502. /// <returns>OracleCommand</returns>
  503. private static OracleCommand BuildQueryCommand(OracleConnection connection,string storedProcName, IDataParameter[] parameters)
  504. {
  505. OracleCommand command = new OracleCommand( storedProcName, connection );
  506. command.CommandType = CommandType.StoredProcedure;
  507. foreach (OracleParameter parameter in parameters)
  508. {
  509. command.Parameters.Add( parameter );
  510. }
  511. return command;
  512. }
  513.  
  514. /// <summary>
  515. /// 执行存储过程,返回影响的行数
  516. /// </summary>
  517. /// <param name="storedProcName">存储过程名</param>
  518. /// <param name="parameters">存储过程参数</param>
  519. /// <param name="rowsAffected">影响的行数</param>
  520. /// <returns></returns>
  521. public static int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected )
  522. {
  523. using (OracleConnection connection = new OracleConnection(connectionString))
  524. {
  525. int result;
  526. connection.Open();
  527. OracleCommand command = BuildIntCommand(connection,storedProcName, parameters );
  528. rowsAffected = command.ExecuteNonQuery();
  529. result = (int)command.Parameters["ReturnValue"].Value;
  530. //Connection.Close();
  531. return result;
  532. }
  533. }
  534.  
  535. /// <summary>
  536. /// 创建 OracleCommand 对象实例(用来返回一个整数值)
  537. /// </summary>
  538. /// <param name="storedProcName">存储过程名</param>
  539. /// <param name="parameters">存储过程参数</param>
  540. /// <returns>OracleCommand 对象实例</returns>
  541. private static OracleCommand BuildIntCommand(OracleConnection connection,string storedProcName, IDataParameter[] parameters)
  542. {
  543. OracleCommand command = BuildQueryCommand(connection,storedProcName, parameters );
  544. command.Parameters.Add( new OracleParameter ( "ReturnValue",
  545. OracleType.Int32, , ParameterDirection.ReturnValue,
  546. false,,,string.Empty,DataRowVersion.Default,null ));
  547. return command;
  548. }
  549. #endregion
  550. }
  551. }

C#DbHelperOra,Oracle数据库帮助类 (转载)的更多相关文章

  1. C# Oracle数据库操作类实例详解

    本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长 ...

  2. (转)C# Oracle数据库操作类

    原文地址:http://www.cnblogs.com/haibing0107/p/6143922.html using System;using System.Data;using System.C ...

  3. 连接Oracle数据库帮助类

    连接Oracle数据库帮助类,就是把连接Oracle数据库的方法封装起来,只需要在其它页面调用就可,不需要重复写. import java.sql.Connection; import java.sq ...

  4. C# Oracle数据库操作类

    using System; using System.Data; using System.Collections.Generic; using System.Configuration; using ...

  5. Oracle数据库操作类及连接方法

    创建DataBaseAccess引用库下面包括DBConnectionString.cs,DBType.cs ,SysName.cs 三个类 DBConnectionString: using Sys ...

  6. oracle 数据库优化【转载】

    版权声明:本文为CSDN博主「咫尺的梦想ing」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/u01305 ...

  7. oracle数据库date类型和mysql数据库datetime类型匹配

    oracle数据库有date类型,但是没有datetime类型 mysql数据库既有date类型也有datetime类型. Oracle数据库的date类型和mysql的date类型是不一样的,Ora ...

  8. .NET/C#/Oracle数据库操作类

    public static class OracleHelper { //数据库连接字符串 private readonly static string connstr = Configuration ...

  9. oracle 数据库 date + 1 转载

    http://blog.csdn.net/yjp198713/article/details/18131871 oracle 求两个时间点直接的分钟.小时数 1.获得时间差毫秒数: select ce ...

随机推荐

  1. Chrome浏览器插件VisualEvent,可以方便的查看页面绑定的事件

    http://files.cnblogs.com/files/jiqing9006/VisualEvent.zip

  2. ASP.Net4.0中新增23项功能

    这篇文章介绍Visual Studio 2010 (ASP.Net 4.0)的新功能. 1.代码片段(Code Snippets): 代码段是预先开发的代码模板,可以节省我们对有关语法思考的时间.在V ...

  3. C#的装箱和拆箱

    1:装箱 其实就是将一个值类型的转换成一个引用类型,或者把值类型转换成一个被该值类型那个应用的接口类型,这个过程会使用堆栈.被装箱的值是作为一个复制赋给对象的. int  intValue = 100 ...

  4. Vijos_1792_摆花_(动态规划,多重集组合数)

    描述 https://vijos.org/p/1792 共n种花,第i种花有a[i]个,要摆m个,同一种花连续且花按照序号从小到大排,问共有多少种摆花方案.   描述 小明的花店新开张,为了吸引顾客, ...

  5. 关于Azure Auto Scale的高级属性配置

    Auto Sacle是一种自动化管理云服务负载的功能,系统可以根据预先制定的规则,在满足条件的情况下对计算实例的数量进行增减从而可以用来优化使用Azure的计算资源,可以适用于Cloud Servic ...

  6. 【转】Android中设置TextView的颜色setTextColor--代码中设置字体颜色

    原文网址:http://www.cnblogs.com/myphoebe/archive/2012/01/06/2314728.html android中设置TextView的颜色有方法setText ...

  7. Android Loader详解三:重启与回调

    重启装载器 当你使用initLoader()时,如果指定ID的装载器已经存在,则它使用这个装载器.如果不存在呢,它将创建一个新的.但是有时你却是想丢弃旧的然后开始新的数据. 要想丢弃旧数据,你应使用r ...

  8. Linux下Chrome浏览器的BUG

    “我胡汉三又回来了”,好久没出现在博客园了,准备考试什么的最烦躁了,今天又重新整了下我的Ubuntu,结果发现了一个Chrome浏览器的Bug,但是与其说它是个Bug,还不如说它是个Joke. 好吧, ...

  9. 笔记本CPU的型号和类型的区分方法

    笔记本CPU的型号和类型的区分方法: 1.所有笔记本CPU型号后面默认为M,代表移动版. 2.如果M变为H,则代表高性能版本,时钟频率更高,性能强,但功耗更大一点,如I7 4500H. 3.如果M变为 ...

  10. 排序算法_HeapSort

    大根堆排序的基本思想: 1) 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区; 2) 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,    由此得到新的无序区 ...