程序运行的时间复杂度是指程序运行的时间还是指程序运行的次数或者指别的什么?
解决方案 »
- java se 不知道错哪里?
- 用驅動程序連接sqlserver時的配置問題!
- File类
- 想用java与pop3邮件服务器连接,只是收邮件。我应该用jmail还是javamail, 它们是一样的嘛?(必结分)
- 100分问大家知道扩展名为WD3的文件吗?
- 关于java编辑器的下载
- 请教一个简单的问题:关于JBuilder中exe文件的问题?
- 关于java的ArrayList问题
- 怎么将IP字符串转化成InetAddress????????????
- 两个 Socket 互相通信,其中一个如何判断另一个 Socket 是否已经意外断开了连接?
- web service 编程有什么特点?
- 数据库查询问题
public void selectSort(int[] arr){
for(int i=0;i <arr.length;i++){
int temp=0;
int min=i;
for(int j=1+i;j <arr.length;j++){
if(arr[j] <arr[min]) {
min=j;
}
}
temp=arr[min];
arr[min]=arr[i];
arr[i]=min;
}以比较元素为基本操作,来计算执行基本操作的次数,n为整数的个数,也叫问题的规模:
第一趟选择最小的元素,执行的比较次数是n-1,
第二趟选择最小的元素,执行的比较次数是n-2.
第n-1趟选择最小的元素,执行的比较次数是1.整个算法执行比较的次数是:1+2+...+n-1=n(n-1)/2=n^2/2-n/2
所以也可以说选择排序算法的时间效率是n^2/2-n/2所谓的时间复杂度就是指不带系数的最高次,记为O(n^2).有研究表明,当n非常大时,最高次是影响整个算法时间效率的最主要因素。所以要用O(n^2)来表示选择排序的时间复杂度。