选择排序开始的时候,我们扫描整个列表,找到它的最小元素,然后和第一个元素交换,将最小元素放到它在有序表中的最终位置上。然后我们从第二个元素开始扫描列表,找到最后n-1个元素中的最小元素,再和第二个元素交换位置,把第二小的元素放在它的最终位置上。一般来说,在对该列表做第i遍扫描的时候(i的值从0到n- ...
分类:
编程语言 时间:
2017-10-15 17:24:29
阅读次数:
178
1、二分法 二分法又叫折半查找,优点是比较次数少,查找速度快,平均性能好; 其缺点是要求待查表为有序表,且插入删除困难。 一般有两种实现方式: 递归方式和非递归方式 (1)非递归方式: public static void binarySearch(int[] arr,int des){ int l ...
分类:
编程语言 时间:
2017-10-12 21:32:52
阅读次数:
292
二分查找:分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成 ...
分类:
其他好文 时间:
2017-10-11 23:40:23
阅读次数:
125
代码来自码云 public static void shellSort(int[] arr){ //初始化增量 int h = 1; //计算最大间隔,公式:h = h * 3 + 1 while(h < arr.length / 3){ h = h * 3 + 1; } //缩小增量进行排序 wh ...
分类:
编程语言 时间:
2017-10-11 15:15:58
阅读次数:
176
1、直接插入排序是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录增1的有序表。一般情况下,第i趟直接插入排序的操作为:在含有i-1个记录的有序 子列中插入一个记录r[i],变成含有i个记录的有序子序列。从已经排好序的部分的尾部向前找合适的位置插入。每次 ...
分类:
编程语言 时间:
2017-10-10 21:56:42
阅读次数:
201
插入排序—直接插入排序(Straight Insertion Sort) 插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个 ...
分类:
编程语言 时间:
2017-10-10 11:32:56
阅读次数:
116
list和tuple都是python内置的数据类型 list list是一个可变的有序表,所以,可以往list中追加元素到末尾: 也可以把元素插入到指定的位置,比如索引号为1的位置: (insert比append的性能差很多) 要删除list末尾的元素,用pop()方法: 要删除指定位置的元素,用p ...
分类:
编程语言 时间:
2017-09-30 16:20:18
阅读次数:
180
二分查找又称折半查找,对于有序表来说,它的优点是比较次数少,查找速度快,平均性能好。 二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a ...
分类:
其他好文 时间:
2017-09-23 17:14:03
阅读次数:
160
定义:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前 ...
分类:
其他好文 时间:
2017-09-12 19:54:00
阅读次数:
170
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。 比如,列出班里所有同学的名字,就可以用一个list表示: 变量classmates就是一个list。用len()函数可以获得list元素的个数: 用索引来访问list中每一个位置的元素,记得索引 ...
分类:
其他好文 时间:
2017-09-11 14:16:54
阅读次数:
190