基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。 操作方法: 第一趟,从n 个记录中找出关键码最小的记录与第一个记录交换; ...
分类:
编程语言 时间:
2016-12-03 18:08:53
阅读次数:
258
排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种语言的类库中都有n多种关于排序算法的实现。但是了解这些精妙的思想对我们还是大有裨益的。本文简单温习下最基础的三类算法:选择,冒泡,插入。 先定义个交换数组元素的函数,供排序时调用 简单选择排序 简单选择排序是 ...
分类:
编程语言 时间:
2016-11-26 14:04:51
阅读次数:
219
选择类排序总结 所谓选择类排序的思想就是:从数组的中选出最大或最小的,通过多次选择最后达到排序的目的 首先是简单选择排序 思想:每趟扫描中,选出最小的数字放在最前面,然后从第二个数字开始扫描,直到只剩下最后一个数不需要扫描 经过分析可以得到,最坏时间复杂度为O(n²),最好时间复杂度为O(n²) 空 ...
分类:
编程语言 时间:
2016-11-26 02:09:17
阅读次数:
123
简单选择排序是经常用到的一种排序算法. 原理: 1.简单选择排序一句话概括:每次选择无序数列中最小的将其放在有序数列的最后。 2.在简单选择排序中,我们用初始化的数字int a[6]={2,5,6,3,1,4} ...
分类:
编程语言 时间:
2016-11-10 18:48:43
阅读次数:
224
一 ,排序 1,冒泡法 冒泡法的核心思想是两两比较,如果大小颠倒就置换。冒泡法的时间复杂度是O(n*n) function maopao_sort($arr){ $len = count($arr); for($i=0;$i<$len;$i++){ for($j=0;$j<$len-$i-1;$j+ ...
分类:
编程语言 时间:
2016-11-05 12:29:17
阅读次数:
233
1、简单选择排序 又称直接选择排序。 思想:利用线性查找搜索出待排序列中的最小元素,并将它移动到最前面,每完成一次遍历,都会使一个元素在正确位置,即第i趟排序后,前面i个元素在正确位置。 时间复杂度:O(n^2) 空间复杂度:只有一个temp的辅助空间:O(1) ...
分类:
编程语言 时间:
2016-11-04 01:17:07
阅读次数:
164
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下几类: (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。 (2)、选择排序:简单选择排序、堆排序。 (3)、 ...
分类:
编程语言 时间:
2016-10-31 13:07:20
阅读次数:
352
第三章 算法 前言:许多人对算法的看法是截然不同的,我之前提到过了。不过,我要说的还是那句话:算法体现编程思想,编程思想指引算法。 同时,有许多人认为简单算法都太简单了,应当去学习一些更为实用的复杂算法。不过,许多复杂算法都是从简单算法演绎而来的,这里就不一一举例了。而且,算法千千万万。更为重要的是 ...
分类:
编程语言 时间:
2016-10-30 00:35:08
阅读次数:
239
数据结构和算法对一个程序来说是至关重要的,现在介绍一下几种算法,在项目中较为常用的算法有:冒泡排序,简单选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等7中算法。现在介绍选择排序算法,希尔排序算法,快速排序算法。(1).选择排序算法:通过n-i次关键..
分类:
编程语言 时间:
2016-10-25 20:18:03
阅读次数:
271
经典排序算法之简单选择排序 http://m.blog.csdn.net/article/details?id=47321309 经典排序算法之冒泡排序 http://m.blog.csdn.net/article/details?id=47318573 经典排序算法之直接插入排序 http://m ...
分类:
编程语言 时间:
2016-10-13 19:04:10
阅读次数:
237