题目: 这题要求大于0的最小字段和,常规O(n)求最大字段和的方法肯定是没法解的。 我的解法是:用sum[i]存前i项的和,也就是前缀和。 这题就变成了求sum[j]-sum[i]的大于0的最小值( j > i )。 我们可以看到直接循环运算量是50000*50000,会超时。 所以我们应该充分利用 ...
分类:
其他好文 时间:
2017-10-05 10:56:53
阅读次数:
228
目录(?)[-] 冒泡排序 选择排序 1 直接插入排序 1 二分查找插入排序 希尔入排序 快速排序 归并排序 总结 目录(?)[-] 本篇博客知识点 分别描述了 冒泡,选择,直接插入,二分插入,希尔,快速以及归并排序。同时还有Java实现代码,算法分析和示意图 冒泡排序 算法描述 设待排序记录序列中 ...
分类:
编程语言 时间:
2017-09-26 14:54:21
阅读次数:
199
#region Algorithm static void SelectionSorter()//选择排序 { int[] list = new int[] { 9, 5, 6, 89, 2, 0, 12, 895, 1, 6 }; for (int i = 0; i = x) ... ...
分类:
编程语言 时间:
2017-08-20 18:20:27
阅读次数:
150
一、插入排序 ?思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置,直到全部插入排序完为止。?关键问题:在前面已经排好序的序列中找到合适的插入位置。?方法:–直接插入排序–二分插入排序–希尔排序①直接插入排序(从后向前找到合适位置后插入) 1、基本思想:每步将一个待排序 ...
分类:
编程语言 时间:
2017-04-29 15:05:57
阅读次数:
205
算法,我在路上,将自己了解的算法内容全部梳理一遍! 今天介绍简单点的,插入排序。 首先,什么是插入排序,这个维基百科上有。个人的理解,就是将一个数插入到一个已经排好序的数列当中某个合适的位置,使得增加了一个元素的新的数列依然是有序的。比如,当前有一个待排序的数组A,我们可以认为这个数组是由两部分组成 ...
分类:
编程语言 时间:
2017-03-30 00:07:44
阅读次数:
229
总结下自己对插入排序的理解。
插入排序算法思想:每趟将一个元素,按照其关键字的大小插入到它前面已经排序的子序列中,依此重复,直到插入全部元素。
插入排序包括:直接插入排序、二分插入排序以及希尔排序...
分类:
编程语言 时间:
2016-11-21 02:10:55
阅读次数:
211
基本思想 每次将一个待排序的记录,按其关键字大小,插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 分类 根据寻找插入位置方法分为 直接插入排序 折半(二分)插入排序 希尔插入排序 直接插入排序 基本思想 当插入第i(i≥1)个对象时,前面的V[0],V[1],…,V[i?1]已 ...
分类:
编程语言 时间:
2016-11-17 23:17:33
阅读次数:
229
经常会用到排序的算法,比如:冒泡法,选择法,快速排序,二分插入排序等等.前面两个就不说了,贴出来自己写的快速排序和二分插入排序的Swift及Java的代码实现,喜欢的话control+C拿去用. swift实现快速排序和二分插入排序算法: (想运行的话,直接复制代码,替换掉控制器里的viewDidL ...
分类:
编程语言 时间:
2016-07-24 20:50:44
阅读次数:
240