1. 冒泡排序 算法思想:两两比较相邻的记录的关键字,如果反序则交换顺序,直到没有反序记录为止! 算法实现:void BubleSort(int *a, int size){ int i, j; int flag = 1;//weather need sorted for(i ...
分类:
编程语言 时间:
2015-03-17 12:21:54
阅读次数:
149
目录简介交换排序冒泡排序快速排序插入排序直接插入排序希尔排序选择排序简单选择排序堆排序归并排序基数排序总结简介排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序。若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参...
分类:
编程语言 时间:
2015-03-16 08:38:00
阅读次数:
264
自10月初编写算法系列的博客以来,陆陆续续以来写了几十篇。按照计划,还有三个部分的内容没有介绍,主要是(Dijkstra算法、二叉平衡树、红黑树)。这部分会在后面的博客补充完整。这里主要是做一个总结,有兴趣的朋友可以好好看看,欢迎大家提出宝贵意见。 (1) 排序算法 快速排序 合并排序堆排序选...
分类:
编程语言 时间:
2015-03-15 18:07:09
阅读次数:
184
1.两个有序数组组合成一个新的有序数组<?php$arr1=array(2,5,7,9,12);$arr2=array(3,4,6,8,10,11);function merge_sort($arr1,$arr2){ $len1=count($arr1); $len2=count($ar...
分类:
编程语言 时间:
2015-03-15 10:46:14
阅读次数:
217
所有排序算法总结:冒泡排序,快速排序,插入排序,归并排序,堆排序,shell排序,选择排序1. 冒泡排序 很简单的排序,外层循环是n-1趟,内层循环是n-1次两两比较。主要思路:从底部往上冒泡,通过无序区中相邻记录关键字间的比较和位置的交换,使关键字最小的记录如气泡一般逐渐往上“漂浮”直至“水面”....
分类:
编程语言 时间:
2015-03-13 18:22:50
阅读次数:
167
1.把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14/ \ / \4 8 12 16转换成双向链表4=6=8=10=12=14=16。首先我们定义的二元查找树 节点的数据结构如下:s...
分类:
编程语言 时间:
2015-03-13 08:10:49
阅读次数:
147
#include
using namespace std;
void Insert(int r[],int n){
for(int i=2;i<=n;i++){
if(r[i]<r[i-1]){
r[0]=r[i];
int j=i-1;
for(;r[0]<r[j];j--){
r[j+1]=r[j];
}
r[j+1]=r[0];//游标指向j
...
分类:
编程语言 时间:
2015-03-12 11:33:03
阅读次数:
254
递归法
#include
using namespace std;
void Merge(int r[],int r1[],int b,int m,int e){
int i=b;
int j=m+1;
int k=b;
while((i<=m)&&(j<=e)){
if(r[i]<=r[j]){
r1[k]=r[i];
i++;
k++;}
else{
r1[k...
分类:
编程语言 时间:
2015-03-12 11:32:51
阅读次数:
179
求数组中的逆序对
#include
using namespace std;
int MergeArray(int r[],int s,int m,int e,int temp[]){
int i=m,j=e,count=0,k=0;
while(i>=s&&j>=m+1){
if (r[i]>r[j]){
temp[k]=r[i];
k++;
count=count+...
分类:
编程语言 时间:
2015-03-12 11:32:13
阅读次数:
172
继续接去年的常见数据结构和算法总结 系列随笔记录一、计算机里进行非数值处理的对象基本上是字符串数据,比处理浮点和整数都要复杂string串定义:由 0 个或多个 字符 组成的 有限的 序列,通常记为:s =“a1 a2 a3 … ai …an” ( n≥0 ,且n是有限的)。其中的引号不属于串,只是...
分类:
其他好文 时间:
2015-03-08 22:48:10
阅读次数:
4613