冒泡

排序算法:插入排序、希尔排序、冒泡、快速排序、选择排序、堆排序以及归并和基数排序

风流意气都作罢 提交于 2019-12-13 18:31:47
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 由于博客迁移至 www.coderyi.com ,文章请看 http://www.coderyi.com/archives/412 排序分为内部排序和外部排序,内部排序指待排序的记录在内存中,外部排序的记录数量很大,以至于内存放不下而放在外存中,排序过程需要访问外存。这里仅介绍内部排序,包括插入排序、交换排序、选择排序、归并排序、基数排序。 1 插入排序 1.1直接插入(straight insertion sort) 算法思路:数组{k1,k2,……,kn},排序一开始k1是一个有序序列,让k2插入得到一个表长为2的有序序列,依此类推,最后让kn插入上述表长为n-1的有序序列,得到表长为n的有序序列。 c实现的代码: // 从小到大排序 int a[]={98,97,34,345,33}; int k=sizeof(a)/sizeof(a[0]); int j; for (int i=1; i<k; i++) { int temp=a[i]; for (j=i-1; j>=0&&a[j]>temp; j--) { a[j+1]=a[j]; } a[j+1]=temp; } 1.2折半插入(binary insertion sort) 算法思路:当直接插入进行到某一趟时,对于r[i]来讲,前面i

2015年1月5日XX大学XX学院考试题

亡梦爱人 提交于 2019-12-04 17:56:57
六、 程序题 1.写一个复数类(操作符重载) #include<iostream> using namespace std; class Complex{ public: Complex(double r=0.0,double i=0.0):read(r),imag(i){}; Complex operator+(const Complex &c2)const; Complex operator-(const Complex &c2)const; void display()const; private: double real,imag; }; Complex Complex::operator+(const Complex &c2)const{ return Complex(real=c2.real+real,imag=c2.imag+imag); } Complex Complex::operator-(const Complex &c2)const{ return Complex(real=c2.real-real,imag=c2.imag-imag); } void Complex::display()const{ cout<<"("<<real<<","<<imag<<")"<<endl; } void int main(){ Complex c1(5,4),c2(2