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

新发现:排序算法时间复杂度只有O(3n),命名为"wgw"排序法

时间:2016-01-14 12:27:13      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

思路:首先在待排序数组i[]中找出最大的值,以(最大值+1)的大小创建一个空数组kk[],然后遍历待排序数组i[]中的值n,其值n对应数组kk[]中的第n个元素加1。最后再把数组kk[]排好序的值赋回给数值i[]。

评价:此算法时间复杂度为O(3n)

代码实现如下:

int[] i ={2,6,9,8,5,6};

int temp = i[0];

   for (int k = 1; k < i.length; k++)
   {
    if(i[k] > temp){
     temp = i[k];
    }
   }
   int[] kk = new int[temp+1];
   for (int j = 0; j < i.length; j++)
   {
    kk[i[j]]++;
   }

int count = 0;
   for (int j = 0; j < kk.length; j++) {
    for (int k = 0; k < kk[j]; k++) {
     i[count] = j;
     count++;
     }
    }

新发现:排序算法时间复杂度只有O(3n),命名为"wgw"排序法

标签:

原文地址:http://www.cnblogs.com/wbjgogogo/p/5129709.html

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