标签:c style class blog code java
一、时间复杂度
1、时间频度 T(n),n为问题的规模
即--算法中语句的执行次数。又叫语句频度。
2、时间复杂度
记作 O( f(n) ),这里的f(n)是一个T(n)的同数量级函数。
如O(1)表示算法的语句执行次数为一个常数,不随规模n的增长而增长;
又如T(n)=n^2+3n+4与T(n)=4n^2+2n+1它们的频度不同,
但时间复杂度相同,都为O(n^2)。
3、算法的性能
主要用算法的 时间复杂度 的数量级来评价一个算法的时间性能。
二、空间复杂度
S(n),包括3方面:
1、算法程序的空间
2、初始数据所占的空间
3、算法执行过程中需要的额外空间
三、三种算法---参考了http://blog.chinaunix.net/uid-23860671-id-150518.html
public class MainSort { private static int[] data = {66,22,55,44,11,33}; private static int LENGTH = data.length; public static void main(String args[]){ System.out.println("hello world"); sortByChoose(); System.out.println("result is:"); printData(); } private static void printData() { for(int i = 0; i<LENGTH; i++){ System.out.print("*"+data[i]); } System.out.print("*"); System.out.println(""); } //选择排序 -- 外层遍历每次找出最小的,放到前面,下次只遍历未排序的后面一段 private static void sortByChoose(){ for(int unsortSize = LENGTH ; unsortSize>0 ; unsortSize--){ int temp = LENGTH-unsortSize; for(int j = LENGTH-unsortSize ; j<LENGTH; j++){ //遍历未排序的找出最小的数的角标 if(data[temp] > data[j]){ temp = j; } } System.out.println(""+temp); int x = data[LENGTH-unsortSize]; data[LENGTH-unsortSize] = data[temp]; data[temp] = x; printData(); } } //插入排序 private static void sortByInsert(){ } //冒泡排序 private static void sortByPop(){ } }
算法复杂度,及三种主要排序算法的研究,布布扣,bubuko.com
标签:c style class blog code java
原文地址:http://www.cnblogs.com/linxiaojiang/p/3768690.html