1、选择排序 基本思路:选择某个索引位置的元素,然后和后面元素依次比较,若大于则交换位置,经过第一轮比较排序后可得出最小值,然后使用同样的方法把剩下的元素逐个比较即可。 2、冒泡排序 基本思路:对未排序的各元素从头到尾依次比较相邻的两个元素大小关系,若大于则交换位置,经过第一轮比较排序后可得出最大值 ...
分类:
编程语言 时间:
2016-04-08 00:52:24
阅读次数:
187
遍历一次数据找到最小的标记起来,遍历结束后把数据放到相应位置voidSelectSort(int*a,intlength){ if(a==NULL||length<=0) { return; } for(inti=0;i<length;i++) { intj=i; intmin=a[i]; intindex=i; while(j<length) { if(a[j]<min) { min=a[j]; ..
分类:
编程语言 时间:
2016-04-07 01:38:35
阅读次数:
150
JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。选择排序法是将数组的第..
分类:
编程语言 时间:
2016-04-07 01:37:42
阅读次数:
244
选择排序 实现思路: 1、将需排序的集合设为A,已经排好顺的集合为B(在未排序前B集合为空)。 2、每次从A集合中查找出最大或者最小的元素后放入集合B中 3、同时将该元素从集合A中移除. 4、循环执行以上两步直到集合A为空,B集合中的元素就有序了. 缺点: 效率低,时间复杂度为 O(n*n),是一种... ...
分类:
编程语言 时间:
2016-04-06 13:30:17
阅读次数:
195
//选择排序voidSelectSort(SeqList*pSeqList){inti=0,j=0;intiMaxPos=0;intiMinPos=0;DataTypetemp;for(;i<pSeqList->Size/2;++i){iMaxPos=i;iMinPos=i;for(j=1;j<pSeqList->Size-i;j++){if(pSeqList->arry[iMaxPos]<pSeqList->arry[j]){iMaxPos=j;}if(pS..
分类:
编程语言 时间:
2016-04-06 11:38:25
阅读次数:
195
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第 ...
分类:
编程语言 时间:
2016-04-04 01:21:03
阅读次数:
173
今天好好的把各种排序都总结了一下,感觉印象加深了不少! 下面列出各种排序: 1.插入排序 2.冒泡排序 3.快速排序 4.归并排序 5.选择排序 6.堆排序 7.希尔排序 ...
分类:
编程语言 时间:
2016-04-03 18:44:51
阅读次数:
146
基本思想 选择排序首先遍历列表,并且将最小的元素与第一个元素进行比较,随后遍历剩余的元素并将次小的元素与第二个元素进行比较,依次类推。选择排序是和冒泡排序差不多的一种排序。和冒泡排序交换相连数据不一样的是,选择排序只有在确定了最小的数据之后,才会发生交换。 代码实现 效率分析 不稳定 空间复杂度:O ...
分类:
编程语言 时间:
2016-04-03 17:10:15
阅读次数:
119
交换排序(冒泡排序、快速排序) 插入排序(直接插入排序、希尔排序)、 选择排序(直接选择、堆排序) 归并排序 基排序 1.冒泡排序 时间复杂度:最优情况下是O(n),最坏情况和平均情况是O(n2) 空间复杂度:O(1) 稳定 算法实现是 从小到大排序 结果是1 2 3 5 6 7 2 快速排序 时间 ...
分类:
编程语言 时间:
2016-04-02 17:31:55
阅读次数:
221