
算法
文章平均质量分 77
刘祖义
专注于自媒体平台运营和网站优化的汉子,和别人合作的android应用程序曾获得第八届信息技术水平大赛二等奖!
展开
-
排序方法总结(3)希尔排序
希尔排序希尔排序是对插入排序的改进,对中等规模的数据排序效率较高!交换的次数变得少了,效率就高了。希尔排序的算法:(1)相距为k的数据进行比较,若不符合排序的条件,就进行交换。(2)第一次比较时k为数组长度的一半,以后依次减半,直至k为零,比较结束。下面是希尔排序实现的c代码和c++代码。c代码:#include void shell(int a[],int n)原创 2013-03-02 09:58:32 · 892 阅读 · 0 评论 -
求素数的几种方法
求素数的几种方法什么是素数?质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。方法(1)由此定义可以得出求素数的第一种方法,也是最基本的方法,设要判断的数为M,就是把2到它本身M的数都遍历一遍,在遍历的过程中发现如果又被它整除的数,就记录这个数n,判断M是否和N相等,若M==N,就说明该数是素数。#includeusing namesp原创 2013-05-16 10:52:26 · 2637 阅读 · 0 评论 -
C++sort函数的用法
C++sort()函数的用法近来看了c++标准库这本书,学到了很多,就把这其中的一点C++sort()函数的用法写下来和大家分享吧!(一)为什么要用c++标准库里的排序函数Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!原创 2013-05-25 20:37:14 · 65778 阅读 · 12 评论 -
排序方法四(与选择排序很类似)
排序方法四(与选择排序很类似)今天在读书的过程中,又学到了一种排序方法。它和选择排序很类似,我以前已经写过选择排序的方法,在这里就不对选择排序进行过多的说明了,如果你想了解选择排序是如何实现的,你可以去看我博客里的关于选择排序的那篇文章。我有思考了一下,这种排序方法就是直接排序!(I)这个排序算法的接口是1)待排序的数组名2)待排序的数组的长度(II)排序的思想:原创 2013-05-27 08:13:24 · 1796 阅读 · 1 评论 -
二分查找的实现和使用标准库函数实现二分查找
二分查找的实现和使用标准库函数实现二分查找 算法思想:1、将数组排序(从小到大);2、每次跟中间的数mid比较,如果相等可以直接返回, 如果比mid大则继续查找大的一边,否则继续查找小的一边。 输入:排序好的数组 - sSource[],数组大小 - array_size,查找的值 - key 返回:找到返回其在数组中位置,否则返回-1 二分查找的原创 2013-07-22 16:14:25 · 3270 阅读 · 0 评论 -
排序方法总结(2)插入排序
插入排序插入排序类和大家玩的纸牌游戏有些类似,在发牌的过程的过程中用右手起的牌,总是和左手里的排进行比较,然后放在恰当的位置。这就是插入排序的思想。以数组为例,其算法是:(1)把数组里第一个数据放在a[0]的位置,然后从a[1]开始,以后的每一个数依次和它前面已经排好的数进行比较,然后放在合适的位置。(2)a[1]可以放在两个位置一个是数组的头位置,一个是其现在的位置即a[1]原创 2013-03-02 09:26:36 · 966 阅读 · 0 评论 -
排序方法之堆排序
堆排序的实现(—)创建初始堆(二)堆排序在创建初始堆之前首先要了解一些关于堆的概念,还需要了解一些关于平衡二叉树的内容 (1)堆的节点数 =n/2; 并且是只舍不入; (2)最后一个堆结点=(n/2)-1; (3)对于任意结点a[x],可以找到它子结点上的内容a[2x+1]和a[2x+2](——)创建一个堆实现原理:它考察堆的各个结点并且使之成为一个堆。这原创 2013-08-09 16:49:26 · 1834 阅读 · 0 评论 -
顺序栈实现十进制和八进制之间的转换
顺序栈实现十进制和八进制之间的转换(1)首先实现栈的初始化,既申请固定大小的数组空间,存储数据,用到的方法是 int InitStack( struct sqstack *s ); (2)接下来就是让数据入栈 ,用到的方法是int push( struct sqstack *s,int e ) (3)与数据入栈相对应的是数据出栈,用到的方法是 int pop( struc原创 2014-03-30 11:09:48 · 6158 阅读 · 0 评论 -
排序方法之标准库中的快排 qsort ()函数
C标准库qsort()函数的用法(快排) 使用快速排序例程进行排序头文件:stdlib.h用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void*,const void *));参数: 1 待排序数组首地址2 数组中待排序元素数量3 各元素的占用空间大小4 指向函数的指针,用于原创 2013-08-09 19:59:38 · 1582 阅读 · 0 评论