![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
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 · 179 阅读 · 0 评论 -
堆排序
算法描述:堆排序是一种利用堆积树(完全二叉树)的特点所进行设计的一种选择排序算法,若堆积树父节点元素不小于其两个子节点元素,则它为大根堆;反之则为小根堆。如何建立堆积树:我先将数组整体向后移了一位,使得第i号元素的两个子节点分别为第 2 * i 和 2 * i + 1 号元素。之后从n/2处开始调整(n为数组中元素个数),即从最后一个元素对应的父节点处开始调整,调整这一颗小二叉树使其成为大(小)根堆原创 2017-09-25 14:44:27 · 181 阅读 · 0 评论 -
冒泡排序
冒泡排序是一种稳定的比较排序方法 时间复杂度为O(n²) 空间复杂度(辅助空间)为O(1)#include <stdio.h>void bubble_sort(int disorder[],int num){ for(int i=0;i<num;i++){ for(int j=i;j<num;j++){ if(disorder[i]<disorde原创 2017-09-25 16:32:11 · 181 阅读 · 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 · 394 阅读 · 0 评论 -
二分查找(折半查找)
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上原创 2017-09-27 09:54:03 · 237 阅读 · 0 评论