选择排序:
原理:依次从数组最左边取一个元素,与之后的位置上的元素比较,如果大于/小于(取决于需要升序排还是降序排),则保存较大/较小元素的索引
当一轮比较后,将保存的较大/较小元素的索引与 这轮开始比较的左边元素置换
改进了冒泡排序,交换次数从O(N^2)减少到O(N), 而比较次数还是O(N^2)
/**
* 选择排序
* 比较次数 O(N^2), 交换O(N)
* @aut...
分类:
编程语言 时间:
2014-10-16 12:21:42
阅读次数:
222
1)冒泡排序 冒泡排序在众多排序算法中算比较简单的一个,基本思想是重复的进行整个数列的排序,一次比较两个元素(两两排序),如果它们顺序不符合就交换,重复这样直到数列没有再需要交换的数为止(结束条件)。就好像气泡一样,轻的气泡会往上漂浮,在不断漂浮的过程中,发生了两两交换过程,所以叫冒泡排序。 ...
分类:
编程语言 时间:
2014-10-15 20:46:51
阅读次数:
257
冒泡排序:
就是按索引逐次比较相邻的两个元素,如果大于/小于(取决于需要升序排还是降序排),则置换,否则不做改变
这样一轮下来,比较了n-1次,n等于元素的个数;n-2, n-3 ... 一直到最后一轮,比较了1次
所以比较次数为递减:从n-1 到 1
那么总的比较次数为:1+2+3+...+(n-1), 以等差公式计算:(1+n-1)/2*(n-1) ==> n/2*(n-1) ==...
分类:
编程语言 时间:
2014-10-15 19:44:41
阅读次数:
198
下面列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序,然后是测试的例子...
分类:
编程语言 时间:
2014-10-15 14:44:30
阅读次数:
235
冒泡排序FunctionbubbleSort($numbers){$cnt=count($numbers);for($i=0;$i<$cnt-1;$i++){//循环比较for($j=$i+1;$j<$cnt;$j++){if($numbers[$j]<$numbers[$i]){//执行交换$temp=$numbers[$i];$numbers[$i]=$numbers[$j];$numbers[$j]=$temp;}}}Return$numbers;}快速排..
分类:
编程语言 时间:
2014-10-15 04:59:00
阅读次数:
196
排序需要掌握的有冒泡排序,插入排序和选择排序。冒泡排序: 外层循环从后往前,内存循环从前往后到外层循环,相邻数组项两两比较,将较大的值后移。插入排序: 从排序过程的中间开始(程序从第二个数组项开始a[1]),此时队列已经拍好了一部分。此时,将后边的数组项一次插入到已经排好序的部分队列中。选择排序: ...
分类:
编程语言 时间:
2014-10-14 17:28:18
阅读次数:
188
冒泡排序是很easy理解和实现,,以从小到大排序举例:设数组长度为N。1.比較相邻的前后二个数据,假设前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,假设N不为0就反复前面二步,否则排序完毕...
分类:
编程语言 时间:
2014-10-14 14:48:18
阅读次数:
265
http://poj.org/problem?id=2388
#include
using namespace std;
int main()
{
int i, j, n,t;
int a[10000];
cin>>n;
for(i=0; i>a[i];
}
//冒泡排序
for(i=0...
分类:
编程语言 时间:
2014-10-14 13:22:18
阅读次数:
180
冒
泡排序法的基本思想:(以升序为例)含有n个元素的数组原则上要进行n-1次排序。对于每一躺的排序,从第一个数开始,依次比较前一个数与后一个数的大
校如果前一个数比后一个数大,则进行交换。这样一轮过后,最大的数将会出现称为最末位的数组元素。第二轮则去掉最后一个数..
分类:
移动开发 时间:
2014-10-14 03:40:08
阅读次数:
216
选择排序:#include#include#includeint main(){int a[7]={3,7,5,2,4,6,8};int i;int j;int temp; for(i=0;i#include#includeint main(){int a[7]={3,7,5,2,4,6,8};i....
分类:
编程语言 时间:
2014-10-13 21:37:17
阅读次数:
146