原理: 依次将第1、2、3……n-1个元素同其后面的元素经行比较,如果发现该元素大于其后面的元素,就将该元素同后面的元素调换位置。比较的顺序为:第1个元素同第2、3……n个元素经行比较,第2个元素同第3、4……n个元素经行比较,……,第n-1个元素同第n个元素经行比较。 时间复杂度分析: (1)算法的最好时间复杂度 若文件的初始状态是正序的,所需的关键字比较次数C、记录移动次数M分别为: Cmin=n(n-1)/2=O(n2)...
maopao.txt 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/6929/showart_32719.html
java排序2(选择排序) Java代码[code]1.package hello; 2. 3.import java.util.Random; 4. 5./** 6. * 书接上回--冒泡排序 7. * 8. * 选择排序: 它改进了冒泡排序,将必要的交换次数O(N*N)减少到了O(N). 但,比较次数仍然保持为O(N*N). 9. * 然而,选择排序仍然为大记录量的排序提出了一个比较重要的改进, 因为,这些大量的记录需要在内存中移动,这就使交换时间和比较时间 相比起来,交换时间更为重要. 1...
今天闲着没事,翻了翻书,介绍了关于插入排序法与归并排序法,自己写了个程序,比较了两种算法的效能,结果大吃一斤
代码如下
[code]
#include
[code]
#include "istream.h"
#include "ostream.h"
void qsort(int[],int,int);
void main()
{
int a[]={6,2,4,5,1,3};
int len=sizeof(a)/sizeof(int);
qsort(a,0,len-1);
for(int i=0;i
转:我是孙海龙 java实现选择排序 选择排序是常用内部排序的一种,常见的实现算法有直接选择排序算法和堆排序算法,选择排序的基本思想是每次从待排数据中选择第n小的数据放到排序列表的第n个位置,假如共有N个数据待排,那么经过N-1次排序后,待排数据就已经按照从小到大的顺序排列了。 直接选择排序算法的思想比较简单:(假设数据放在一个数组a中,且数组的长度是N) 1:从a[0]-a[N-1]中选出最小的数据,...
#include
单向链表的排序(冒泡法) 2008-01-08 16:54 struct note /*结构体定义并声明变量head*/ { int total; struct note * next; }; struct note * sort(struct note * note head) /*排序函数*/ { int i; struct note *p1,*stu,*p2,*p0=NULL; printf("\nSorting..."); if(!head || !head->next) /*没有结点或只有一个结点,直接退出。*/ return head; if(!head->next->next) /*有两个结点,交换两个结点后退出。*/ { if(head->total...
用c实现的插入排序法,先输入10个数,然后利用插入排序法进行排序,将结果输出。算法简单,可供初学者学习。 #include "stdio.h" #include "conio.h" main() { int a[10],r[11]; int *p; int i,j; for(i=0;ir[0]) { r[j+1]=r[j]; j--; } r[j+1]=r[0]; } for(i=1;i 本文来自ChinaUnix博客,...
ArrayList可以用来组合任何的对象,但其默认的排序是按对象本身值来排序,而不是应用自定义的,因此需要重新修改ArrayList的Sort方法的IComparer接口实现。以下是重新写的IComparer的实现,用了类型反射以做到能适合所有类的排序 性能测试:(仅供参考) 配置:PIII 733 384M内存 Windows2000SP4 .net FrameWork 1.1.4322 SP1 ArrayList容纳100个对象,排序时间大约10~20毫秒 ArrayList容纳1000个对象,排序时间...