首页 > 编程语言 > 详细

Java数据结构之排序

时间:2016-08-17 22:54:08      阅读:259      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!