这是我今天笔试的一道题目,总的来说还是让人较为满意。...
分类:
编程语言 时间:
2015-03-02 19:09:42
阅读次数:
140
名称稳定性时间复杂度空间复杂度描述数据对象为链表平均最坏冒泡排序YO(n^2)O(1)无序区,有序区。 选择排序 O(n^2)O(1)有序区,无序区稳定性Y,其它同数组插入排序YO(n^2)O(1)有序区,无序区同数组堆排序 O(n log n)O(1)最大堆,有序区 归并排序YO(n log n)...
分类:
编程语言 时间:
2015-03-02 18:18:21
阅读次数:
134
具体要求:A.从控制台循环录入任意个同学的信息跟成绩(学号,姓名,C语言分数)使用结构体B.在控制台打印本班的总分和平均分,并打印本班最高分、最低分的学生信息C.按成绩高低打印本班成绩册并排出名次using System;using System.Collections.Generic;using ...
分类:
其他好文 时间:
2015-02-28 22:55:47
阅读次数:
172
1 #include 2 #include 3 #include 4 using namespace std; 5 6 void displayArray(int* const,const int&); 7 void displayVec(vector &); 8 9 void MERG...
分类:
编程语言 时间:
2015-02-28 16:14:48
阅读次数:
150
为加深排序算法的理解,总结一下常见的排序算法。
排序算法的大致分类:(网上找的图)
具体的实现:
直接插入排序:
基本原理为将待排序的数组分为有序区域和无序区域,每次将无序区域的一个数值插入到有序区域并排好序。最终实现排序。
void InsertSort(int k[],int n)
{
int i, j, temp;
for(i = 1; i < n; i...
分类:
编程语言 时间:
2015-02-27 20:18:02
阅读次数:
220
归并排序:(nlog(n) 小->大)1.将数组分成两部分2.将两部分分别排序3.将排完序的两部分合为一部分void merge_sort(int x,int y){ if(y-x = y || (p = y || (p = y) return; int k = a[x];...
分类:
编程语言 时间:
2015-02-24 13:44:24
阅读次数:
149
基本思想:基于分治法,即把待排序的数组序列,分为若干个子序列,对每个子序列排序,然后再把所有有序的子序列合并为一个整体有序的序列。分析可知,如果拿任何一个元素作为子序列,那么所有子序列就已经是有序的,而归并排序的关键就在于如何合并,也就是“归并”。
归并排序是外排序,稳定排序,时间复杂度是O(nlogn).
详细说归并排序的过程:1个...
分类:
编程语言 时间:
2015-02-23 17:55:50
阅读次数:
272
转自tangjz的博客...基础算法模拟搜索广度优先搜索(BFS)优化:双向BFS深度优先搜索(DFS)优化:折半DFS迭代加深搜索(IDS)启发式搜索(Astar)优化:IDAstar优化:剪枝、位运算排序冒泡排序/选择排序基数排序/桶排序计数排序插入排序/希尔排序快速排序归并排序/求逆序对数堆排...
分类:
编程语言 时间:
2015-02-23 10:50:21
阅读次数:
330
题目大意就是说帮你给一些(n个)乱序的数,让你求冒泡排序需要交换数的次数(n
显然不能直接模拟冒泡排序,其实交换的次数就是序列的逆序对数。
由于数据范围是 0 ≤ a[i] ≤ 999,999,999所以先要离散化,然后用合适的数据结果求出逆序
可以用线段树一步一步添加a[i],每添加前查询前面添加比它的大的有多少个就可以了。
也可用树状数组,由于树状数组求的是(1...x)的数量和所以每...
分类:
编程语言 时间:
2015-02-22 20:47:46
阅读次数:
200
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), ne...
分类:
编程语言 时间:
2015-02-18 14:04:12
阅读次数:
148