插入排序及其解决思路算法的作用自然不用多说,无论是在校学生,还是已经工作多年,只要想在计算机这条道路走得更远,算法都是必不可少的。就像编程语言中的“Hello World!”程序一般,学习算法一开始学的便是排序算法。排序问题在日常生活中也是很常见的,说得专业点:输入是:n个数的一个序列
输出是:这n个数的一个全...
分类:
编程语言 时间:
2015-07-01 14:12:11
阅读次数:
201
1.时间复杂度
时间复杂度为O(n^2)的排序算法:插入排序、冒泡排序、选择排序
时间复杂度为O(nlogn)的排序算法:堆排序、归并排序、快速排序
希尔排序介于这两者之间
2.算法稳定性
稳定的排序算法:插入排序、冒泡排序、归并排序和基数排序
不稳定的排序算法:选择排序、快速排序、希尔排序、堆排序...
分类:
编程语言 时间:
2015-06-30 00:13:26
阅读次数:
149
计数排序原理 计数排序的基本思想是:对于每一个输入元素x,确定小于x的元素个数。根据这些信息,就能准确的将每个数字放在正确的位置上。 在排序的过程中,除了输入数组A[n]之外,还需要一个记录结果的数组B[n]和一个记录小于x数的个数数组C[num_max]。A与B的数组等长,而C数组的长度则为n个数中的最大者。 上图为计数排序的一系列过程,下面依次做分析:
(a)中显示了原始数组A...
分类:
编程语言 时间:
2015-06-27 11:42:38
阅读次数:
123
题目:
实现一个排序算法,排序对象是本公司员工的年龄,要求时间复杂度O(n),空间复杂度不能超过O(n)。#include
using namespace std;
void SortAge(int Ages[],int length)
{
if (NULL == Ages || length <= 0)
return;
const int ol...
分类:
其他好文 时间:
2015-06-26 12:56:06
阅读次数:
100
所谓索引就是为特定的mysql字段进行一些特定的算法排序,比如二叉树的算法和哈希算法,哈希算法是通过建立特征值,然后根据特征值来快速查找。 而用的最多,并且是mysql默认的就是二叉树算法 BTREE,通过BTREE算法建立...
分类:
数据库 时间:
2015-06-25 17:49:16
阅读次数:
160
算法是程序员必被的一个技能,在面试中常常出现,下面总结了面试中出现的常见算法,这些算法程序员应该牢记在心中,要非常熟练。...
分类:
编程语言 时间:
2015-06-22 08:47:04
阅读次数:
129
计算机随机生成10000个数,让算法排序。花费时间如下: 代码: // KindsOfSort.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include using namespace std; #define N ...
分类:
编程语言 时间:
2015-06-18 21:54:41
阅读次数:
231
选择排序 1)原理:对于一个将要排序的数组A[n],先找出最小元素(升序排列),将其与A[0]交换,接着在数组下标为1~n-1的元素中寻找最小值,与A[1]交换,直到排序结束。 2)C语言实现:void main()
{
int t,temp,count, *p;
printf("please input the count :");
scanf_s("%d",...
分类:
编程语言 时间:
2015-06-18 11:29:13
阅读次数:
149
希尔排序实际上是插入排序的一种,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。时间复杂度无法准确的估计,希尔排序的基本逻辑记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。-(...
分类:
编程语言 时间:
2015-06-18 08:14:35
阅读次数:
104
所谓索引就是为特定的mysql字段进行一些特定的算法排序,比如二叉树的算法和哈希算法,哈希算法是通过建立特征值,然后根据特征值来快速查找。而用的最多,并且是mysql默认的就是二叉树算法 BTREE,通过BTREE算法建立索引的字段,比如扫描20行就能得到未使用BTREE前扫描了2^20行的结果,具体的实现方式后续本博客会出一个算法专题里面会有具体的分析讨论;
Explain优化查询检测
EX...
分类:
数据库 时间:
2015-06-16 19:15:37
阅读次数:
201