1、冒泡排序:时间复杂度为O(n2)

假设是由小到大排序:相邻两个数之间进行比较,较大的数在后面。一次比较过后最大的数排在最后面

如:40、8、15、18、12一次排序后为:8、15、18、12、40依次排好直到由小到大拍好

for(int i = 0;i < n-i; i++){
for(int j = 0;j < n-1-i;j++){      //最后几位已经排好的就不需要再排序了
if(a[j] > a[j+1]){
k= a[j];
a[j] = a[j+1];
a[j+1] = k;
}
}
}

2、选择排序:时间复杂度为O(n2)

假设是由小到大的排序:每次选出排序一次中最小的数放在第一位

如:3、4、1、5、2一次排序后为:1、4、3、5、2

for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(a[i]>a[j]){
k= a[i];
a[i] = a[j];
a[j] = k;
}
}
}

3、插入排序:

假设是由小到大的排序:每次排序某个数与之前的数进行比较,若小于则插在其前直到大于前面的数

for(int i =1;i < n; i++){
int j = i-1;
int k = a[i];
while(a[i] < a[j]&&j >= 0){
a[j+1] = a[j];
j--;
}
a[j] = k;
}

Java数据结构之排序的更多相关文章

  1. Java数据结构与排序

    一.引子:想要给ArrayList排序却发现没有排序方法?你有两种选择:        1.换用TreeSet:     2.使用Collection.sort(List<T> list) ...

  2. JAVA数据结构--希尔排序

    希尔排序通过将比较的全部元素分为几个区域来提升插入排序的性能.这样可以让一个元素可以一次性地朝最终位置前进一大步.然后算法再取越来越小的步长进行排序,算法的最后一步就是普通的插入排序,但是到了这步,需 ...

  3. JAVA数据结构--选择排序

    选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然 ...

  4. Java数据结构(排序篇)

    冒泡排序:是经过n-1趟子排序完毕的,第i趟子排序从第1个数至第n-i个数,若第i个数比后一个数大(则升序,小则降序)则交换两数.大泡在上,小泡在下. 选择排序:每一趟从待排序的数据元素中选出最小(或 ...

  5. Java数据结构之排序---希尔排序

    希尔排序的基本介绍: 希尔排序同之前的插入排序一样,它也是一种插入排序,只不过它是简单插入排序之后的一个优化的排序算法,希尔排序也被称为缩小增量排序. 希尔排序的基本思想: 希尔排序是把数组中给定的元 ...

  6. Java数据结构之排序---插入排序

    插入排序的基本介绍: 插入排序是对想要排序的序列以插入的方式寻找该元素的适当的位置,从而达到排序的目的. 插入排序的基本思想: 把n个待排序的元素看成一个有序表和一个无序表,开始时,有序表只有一个元素 ...

  7. Java数据结构之排序---选择排序

    简单选择排序的介绍: 从给定的序列中,按照指定的规则选出某一个元素,再根据规定交换位置后达到有序的目的. 简单选择排序的基本思想: 假定我们的数组为int [] arr = new int[n],第一 ...

  8. Java数据结构之排序---冒泡排序

    冒泡排序的基本思想: 通过对待排序序列从前到后(从下标小的元素开始),依次比较相邻位置的元素的值,若发现与给定的次序冲突,则交换位置(假设数值大的数放在序列的后面),使数值较大的元素逐渐从前移动到后部 ...

  9. Java数据结构与排序算法——堆和堆排序

    //================================================= // File Name : Heap_demo //--------------------- ...

随机推荐

  1. CSS3 filter10种特效整理

    -webkit-filter是css3的一个属性,Webkit率先支持了这几个功能,感觉效果很不错.一共有10种最基本的特效,下来这个DEMO很好的展示了这些效果: <!DOCTYPE html ...

  2. 【转】oracle number与java中long、int的对应

    Oracle数据库中number类型在hibernate的引用 1)如果不指定number的长度,或指定长度n>18 id number not null,转换为pojo类时,为java.mat ...

  3. 【Unique Binary Search Trees】cpp

    题目: Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For e ...

  4. 【转】#ifdef _DEBUG用法小结

    原文地址:http://blog.csdn.net/shijizhisheng/article/details/1908054 1 #ifdef _DEBUG virtual void AssertV ...

  5. opencv中的Bayes分类器应用实例

    转载:http://blog.csdn.net/yang_xian521/article/details/6967515 PS:很多时候,我们并不需要特别精通某个理论,而且有的时候即便你非常精通,但是 ...

  6. setrendertraget 上下颠倒

    这个问题遇到两次了 之前一次是粒子rendertotexture 没设viewprot的时候是上下颠倒的 设置viewport之后就好了 现在在一个setrendertarget的地方又遇到了 上下颠 ...

  7. JS模板引擎 :ArtTemplate (2)

    上一篇初略的介绍了一下javascript中的模板引擎,有兴趣的可以戳 这里 . 这一篇将带着大家一起做一个简易的模板引擎, 上一篇介绍到:模板引擎其实做的就是两件事. 根据一定的规则,解析我们所定义 ...

  8. [百度空间] [转]内存屏障 - MemoryBarrier

    处理器的乱序和并发执行 目前的高级处理器,为了提高内部逻辑元件的利用率以提高运行速度,通常会采用多指令发射.乱序执行等各种措施.现在普遍使用的一些超标量处理器通常能够在一个指令周期内并发执行多条指令. ...

  9. 研究AFIncrementalStore

    一.增量存贮(AFIncrementalStore:NSIncrementalStore)在CoreData中所处位置

  10. TJU 4087. box

    题目:Tuhao and his two small partners participated in the tournament.But in the end, they lost the cha ...