摘要:
最大子数组(分治法) 解题思路: 将数组分成两份,最大子数组(元素之和最大)只有三种情况: (1)最大子数组在mid左边,即:startIndex和endIndex都在mid左边 (2)最大子数组一半在左边,一半在右边,即:startIndex在 mid左边,endIndex在mid右边 (3)最大 阅读全文
摘要:
最大子数组问题(暴力法) 暴力求解:遍历每一个子数组区间,比较大小,并记录最大收益的开始和结束的下标 代码实现 int[] priceArray = new int[] { 100, 120, 140, 50, 63, 89, 150, 162, 186, 20, 90, 48, 75, 97, 9 阅读全文
摘要:
快速排序算法详解 快速排序是对冒泡排序的一种改进,由 C.A.R.Hoare(Charles Antony Richard Hoare,东尼·霍尔)在 1962 年提出。 快速排序的基本思想是: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分的所有数据要小,再按这种方法 阅读全文
摘要:
选择排序 选择排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法。 选择排序的方法主要有 阅读全文
摘要:
冒泡排序算法 算法思想 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数 阅读全文
摘要:
C# 简介 C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言,它不仅去掉了 C++ 和 Java 语言中的一些复杂特性,还提供了可视化工具,能够高效地编写程序。 C#是由C和C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承C和C++强大功能的同时去掉了一些 阅读全文