摘要:
思想(见图):等同于插入排序,不同的是,插入排序每次只间隔一个元素,而希尔排序间隔 gap个元素,最后一趟又是一边真正的插入排序(间隔一个):代码:#pragma oncevoid ShellSort(int *a, int size){ assert(a); int... 阅读全文
摘要:
思想:(见图)方法一:直接上代码:void InsertSort(int *a,int size){ assert(a); int i, j, tmp; for (i = 0; i = 0; --j) //在有序序列中插入后来数 { if (a[j] > t... 阅读全文
摘要:
上一篇是堆排序的简单过程,自认为下面这种更为合适:思想:1.建立大堆;2.取堆顶元素和堆尾元素交换;(此时,大堆已破坏,需要重新往下调整,恢复大堆)3.恢复大堆前,需要减掉已经在正确位置的堆尾元素;代码如下:#pragma once////建立大堆,void Adju... 阅读全文
摘要:
入编程这一行之初,便常听人说,要多动手写代码。可要怎么写列?写些什么列?做些什么列?c语言程序设计100例,太过基础,入门之后,挑战性不够。直接做项目,初学者则需花费大量的时间与精力、且得有一定能力之后。 于是,这份精选微软等公司数据结构+算法面试100题的资... 阅读全文
摘要:
不但是我的一开始 ,而且是好多人的一开始,一开始都觉得博客嘛,当然是自己总结的好,这也没什么错,好,大家都开始写自己感觉经典的博客,感觉转载博客心理有愧,就这样慢慢的,好多真大神的技术博客就沦为了大家的技术字典,哪里不会了,就查一下,从来不会深究,但是,你如果在深究一... 阅读全文
摘要:
关于decltype操作符的说明:1、在C++中,decltype作为操作符,用于查询表达式的数据类型。decltype在C++11标准制定时引入,主要是为泛型编程而设计,以解决泛型编程中,由于有些类型由模板参数决定,而难以(甚至不可能)表示之的问题。泛型编程在整个1... 阅读全文