自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 C语言-数据结构-归并排序(merge sort)-递归 迭代-源代码及分析

1. 归并排序归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序常用递归的方式实现,但是由于递归的固有缺陷,比如占用较大的运行空间,有些场合也会用迭

2017-01-25 21:30:06 8935 4

原创 C语言-数据结构-堆排序(heap sort)-源代码

1. 堆排序堆排序的定义及思想可以参考百度百科:堆排序用一句概括,堆排序就是一种改进的选择排序,改进的地方在于,每次做选择的时候,不单单把最大的数字选择出来,而且把排序过程中的一些操作进行了记录,这样在后续排序中可以利用,并且有分组的思想在里面,从而提高了排序效率,其效率为O(n*logn).2. 源代码堆排序中有两个核心的操作,一个是创建大顶堆(或者小顶堆,这里用的是大顶堆...

2017-01-24 21:07:54 12744 9

原创 C语言-数据结构-希尔排序(shell sort)-源代码

1. 希尔排序及其时间复杂度希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。用一句话概括

2017-01-21 17:00:00 1313

原创 C语言-数据结构-插入排序及优化-源代码

1. 插入排序的定义及复杂度插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。其时间复杂度为O(n^2)。2. 源代码运行结果如下图所示。#include<stdio.h>void insertsort(int a[], int n){ int i, j, temp, c1=0; for(i=1...

2017-01-16 22:47:50 999

原创 C语言-数据结构-选择排序-源代码

1. 基本思想及时间复杂度简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。选择排序时间复杂度为O(n^2).2. 源代码#inc

2017-01-12 22:29:31 790 1

原创 C语言-数据结构-冒泡排序及优化-源代码

1. 冒泡排序定义及时间复杂度(来自百度百科)冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。若文件的

2017-01-12 21:06:14 2803

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除