c
hermit_f
这个作者很懒,什么都没留下…
展开
-
直接选择排序
直接选择排序的算法描述是 第1次在数组a[0]~a[n]中,找到最大(最小)元素和a[0]交换,第2次从a[1]~a[n-1]中找到最大(最小)元素和a[1]交换······第i次从a[i-1]~a[n-1]中找到最大(最小)元素和a[i-1]交换······直到第n-1次完成后结束。选择排序是一种不稳定的比较排序方法 平均时间复杂度为O(n²) 空间复杂度(辅助空间)为O(1)void xua原创 2017-09-13 19:20:10 · 197 阅读 · 0 评论 -
堆排序
算法描述:堆排序是一种利用堆积树(完全二叉树)的特点所进行设计的一种选择排序算法,若堆积树父节点元素不小于其两个子节点元素,则它为大根堆;反之则为小根堆。如何建立堆积树:我先将数组整体向后移了一位,使得第i号元素的两个子节点分别为第 2 * i 和 2 * i + 1 号元素。之后从n/2处开始调整(n为数组中元素个数),即从最后一个元素对应的父节点处开始调整,调整这一颗小二叉树使其成为大(小)根堆原创 2017-09-25 14:44:27 · 222 阅读 · 0 评论 -
顺序查找
顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的数的具体位置。原理是让关键字与队列中的数从最后一个开始逐个比较,直到找出与给定关键字相同的数为止,它的缺点是效率极其低下。#include <stdio.h> void find(int a,int b[],int n){//顺序查找 int flag=0; for(int i=0;i<n;i++){ if原创 2017-09-27 09:40:19 · 427 阅读 · 0 评论 -
计算最小公倍数
代码不是很规范···#include <stdio.h>int main() { int i,n,x; double m,a,b; while(scanf("%lf%lf",&a,&b)!=EOF)//接收两个数字开始运算 { x=0;m=1.1;n=1; for(i=1;m!=n;i++) {原创 2017-09-11 15:14:08 · 305 阅读 · 0 评论 -
二分查找(折半查找)
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上原创 2017-09-27 09:54:03 · 256 阅读 · 0 评论