经典算法
一灯大师_Alex
擅长各种板子点灯
展开
-
C实例---插入排序(Shell)
问题描述:简单插入排序的时间复杂度是:n^2,shell排序是对其时间复杂度改进的一种算法,改善后的复杂度为:nlogn 分析:待排数据 99 42 57 74 46 85 32 78 40 33 74 88 65 27 38 69 51 32 59 24 对其进行一次划分: d = 20 / 2 = 10 :99 42 57 74 46 85 32 78 40 33 | 74 88原创 2016-12-27 17:56:56 · 296 阅读 · 0 评论 -
C实例---快速排序(冒泡排序)
问题描述:冒泡排序是每个程序猿最熟悉的排序算法了,其时间复杂度为:n^2。 分析:选择一个待排的头,第一个数据/最后一个数据,一次向后/前比较,比较到最后为一趟排序,总共排序n次,但每趟排序比前一趟少1排序数据。 代码:#include <stdio.h>void BubbleSort(int s[], int len) { int i,j,temp; for (i = 0; i原创 2016-12-27 20:31:33 · 316 阅读 · 0 评论 -
C实例——插入排序(简单插入)
算法描述:内排序的一种,分为简单插入排序、二分插入排序和SHELL排序,本例为第一种平云复杂度n^2。适用于待排数较少的情况。 分析:想想平时打扑克,每当拿起一张新牌,要比较手上牌的顺序选择一个较为合适的位置插入,本算法就跟那情况类似。选定待排序的第二个数开始和左边比较插入,如果比左边的小则交换(降序排列),依次比较到第一个数。这样一次迭代完成整个排序序列。 代码:#include <stdio原创 2016-12-27 11:18:38 · 644 阅读 · 0 评论