摘要:
希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多, 阅读全文
摘要:
1 时间复杂度比较1) 从平均时间复杂度来考虑:直接插入排序、冒泡、直接选择是三种简单的排序方法,为O(N2),快速、堆、二路归并排序为O(nlog2n),希尔排序介于两者之间。2) 从最好的时间复杂度考虑:直接插入排序和冒泡为O(n),其他的最好情况平均相同。3) 从最坏的时间复杂度考虑:快速排序... 阅读全文
摘要:
阅读全文
摘要:
选择排序算法(不稳定,时间复杂度O(n^2)),性能上要略优于冒泡 升序 基本思想:在一堆数中,先找到最小的数,放到第0位,就不用管了;在剩下的数中再找到第二小的数放到第1位,就不用管了;在剩下的数中再找到第三小的数放到第2位,依次类推,总数依次减一,最后排完为止。 方法: 1 #include < 阅读全文
摘要:
(是稳定的,时间复杂度O(n^2)),性能上比冒泡和选择好一点 降序 c++实现: 1 #include <iostream> 2 3 using namespace std; 4 5 void sort(int *array) 6 7 { 8 9 for(int i=1;i<10;i++) 10 阅读全文
摘要:
一 单向链表1插入 在a和c之间插入b b.next = a.next; //a的后继(c)变为b的后继 a.next = b; //b变为a的后继2删除 在a和b之间删除cnext =c.next; //c的后继(b)变为a的后继二 双向链表1插入 在a和c之间插入bb.next=a.next;/... 阅读全文
摘要:
栈#include const int max = 5;float num[max];int top = 0;void push(float x) { if (top==max){return;} num[top] = x;// top++; }void pop()... 阅读全文