码迷,mamicode.com
首页 > 编程语言 > 详细

Java数据结构之排序

时间:2016-08-17 22:56:27      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

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数据结构之排序

标签:

原文地址:http://www.cnblogs.com/sker/p/5782040.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!