根据ideal的debug 显示,第一次进入for 循环的时候,没有进行 i++ 操作。 第二次进入循环的时候,就算不满足 i < 100 的条件,也会进行i++ 操作。 /** * 冒泡排序 * @param a 数组 * @param n 数组长度 */ public static void b ...
分类:
编程语言 时间:
2020-02-28 18:59:51
阅读次数:
49
插入排序工作原理: 1.将一个数组拆分成两个数组,一个取第一个元素认为是有序的;剩余的元素认为是无序的 2.每次从无序数组中取出第一个元素与有序数组最后一个元素进行比较 待插入元素比较大,则放有序数组后面;如果比较小,则与有序数组倒数第二个进行比较,对有序数组从后往前进行扫描,直到遇到比他小的位置, ...
分类:
编程语言 时间:
2020-02-27 19:14:30
阅读次数:
56
一、 考试的总体要求 本考试内容由两部分组成,数据结构和程序设计,各占总分的50%。 数据结构是计算机科学与技术专业基础课,要求学生掌握基本的数据结构及相关的存储方式、基本运算、算法和应用,并能运用盒图、结构化语言、类C、高级语言(C或C++)等方法之一编写算法。 程序设计指采用C++语言,应用数据 ...
分类:
其他好文 时间:
2020-02-27 01:05:22
阅读次数:
60
输入若已经是排好序的,下列排序算法最快的是() A. 插入排序 B. Shell排序 C. 合并排序 D. 快速排序 解析:若已排好序,使用插入排序的时候只要两两比较一次即可,复杂度为O(n)。 答案:A 拓扑排序是按 AOE 网中每个结点事件的最早发生时间对结点进行排序,这样的说法正确吗? A. ...
分类:
编程语言 时间:
2020-02-27 00:56:42
阅读次数:
80
插入排序什么是插入排序? 具体实现逻辑 1. 取数组的第一个元素为已经排序好的元素,将第一个元素看作有序序列 2. 取数组的第二个元素和已经排序好的元素进行比较,如果第二个元素比第一个元 素小,则交换位置,排序完成后第一个元素和第二个元素必然有序,形成新的有 序数列 3. 取数组的第三个元素,依次和 ...
分类:
编程语言 时间:
2020-02-26 01:52:06
阅读次数:
84
一、技术总结 1. 这是一道考查插入排序和堆排序的问题。 2. 这里开始最主要的问题是,没有理解堆排序。堆排序是通过把数组中第一个元素与最后一个元素交换,然后再对于第一个元素进行向下调整downAdjust函数。 3. 所以这里对于插入排序,只要一直遍历发现第一个元素的比前一个元素小,记录下这时的下 ...
分类:
其他好文 时间:
2020-02-23 22:18:07
阅读次数:
67
一、如何使用 Redis 来缓存来实现最近浏览的商品列表? 首先我们要确定一个两个点,最近浏览的商品肯定是一个 存 一个 取 的操作。 那么就可以确定以下几个问题: 1. 最近浏览的记录肯定是要有失效时间的 这里可以使用缓存(Redis等),缓存可以设置失效时间(最大设置为一个月)。 如果使用关系型 ...
分类:
其他好文 时间:
2020-02-23 21:57:20
阅读次数:
187
数组就是一些列具有相同类型的数据的集合,这些数据在内存中一次挨着存放,彼此之间没有缝隙。 我们可以将二维数组看作一个Excel表格,有行有列,length1 表示行数,length2 表示列数,要在二维数组中定位某个元素,必须同时指明行和列。 二维数组在概念上是二维的,但在内存中是连续存放的,换句话 ...
分类:
编程语言 时间:
2020-02-23 18:38:59
阅读次数:
111
1 // 插入排序的写法:即使不需要哨兵,也可以写的很流畅。 2 int* insertionSort(int* A, int n) { 3 // write code here 4 for(int i=1;i<n;i++){ 5 int j=i-1,tmp=A[i]; 6 while(j>=0 & ...
分类:
编程语言 时间:
2020-02-23 18:25:30
阅读次数:
83
1. bisect维护有序列表 bisect模块实现了一个算法来向列表中插入元素,同时仍保持列表有序。 1.1 有序插入 下面给出一个简单的例子,这里使用insort()按有序顺序向一个列表中插入元素。 import bisect # A series of random numbers value ...
分类:
编程语言 时间:
2020-02-23 09:50:19
阅读次数:
93