Java选择排序
摘要:public class Test{ public static void main(String args[]){ int[] a = {34, 53, 13, 90, 78,99}; print(a); selectSort(a); print(a); } public static void print(int[] a){ for(int i = 0; i < a.length; i++){ System.out.print(a[i] + " "); } System.out.println(); } public static void selectSort(
阅读全文
posted @
2011-12-16 20:56
Gavin Dai
阅读(271)
推荐(0)
运算符 优先级 结合性
摘要:C语言的运算符可分为以下几类:1.算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。2.关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。3.逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。4.位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。5.赋值运算符:分为简单
阅读全文
posted @
2011-12-03 19:50
Gavin Dai
阅读(4332)
推荐(0)
两种改进的冒泡排序算法
摘要:两种对冒泡排序的改进算法,对于n个元素的冒泡排序,普通的冒泡排序要经过n-1趟排序。第一种改进:加一个标志位,当某一趟冒泡排序没有元素交换时,则冒泡结束,元素已经有序,可以有效的减少冒泡次数。template <class T>void Sort<T>::bubbleSwap(DataList<T> &datalist, const int n, int &flag){ flag = 0; for (int i = datalist.m_nCurrentSize - 1; i >= n; i--) { if (datalist.m_pv
阅读全文
posted @
2011-12-03 14:18
Gavin Dai
阅读(6276)
推荐(0)
插入排序,二分插入排序,希尔排序思想与比较
摘要:直接插入排序的基本方法:每步将一个待排序的元素,按其排序码的大小,插入到前面已经排好序的一组元素的适当位置上去,直到元素全部插入为止。插入排序(insert sorting)思想:当插入第i个元素时,前面的v[0],v[1],v[2]......v[i-1],已经排好序了.这时用v[i]的插入码与v[i-1],v[i-2],......排序码进行比较,找到插入的位置即插入v[i],原来位置上的元素从后向前依次后移。时间复杂度: 平均比较次数O(n2),平均移动次数O(n2).直接插入排序是一种稳定的排序。元素大部分有序时效率会更高,这时比较次数和移动次数都会减少。参考代码: void Sort
阅读全文
posted @
2011-12-02 13:44
Gavin Dai
阅读(7346)
推荐(0)
C++初始化与赋值
摘要:先来个区别说明:赋值操作是在两个已经存在的对象间进行的,而初始化是要创建一个新的对象,并且其初值来源于另一个已存在的对象。编译器会区别这两种情 况,赋值的时候调用重载的赋值运算符,初始化的时候调用拷贝构造函数。如果类中没有拷贝构造函数,则编译器会提供一个默认的。这个默认的拷贝构造函数只是 简单地复制类中的每个成员。下面看例子。 c++中初始化和赋值操作差别是很大的。 对于基本数据类型差别不大: 比如: inta=12;//initialization,copy0X000Ctoa a=12;//assignment,copy0X000Ctoa 但是对用户自定义的数据类型比如String初始化和赋
阅读全文
posted @
2011-12-02 10:56
Gavin Dai
阅读(511)
推荐(0)