UDN-企业互联网技术人气社区

板块导航

浏览  : 4108
回复  : 42

[社区公告] 邀你来战【UDN算法挑战】 现金红包等你来拿

[复制链接]
发表于 2015-12-8 16:51:40 | 显示全部楼层
第一题:
int count = new int[N];
int k;
for(int i = 0;i<N ;i++){
    count[i] = 0;
}
for(int i = 0;i<arr.length;i++){
count[arr[i]]++;
}
for(int i =0;i<N;i++){
while(count[i] != 0){
    arr[k++] = i;
}
}

第二题:
                       int temp;
                int[] result = new int[num];
                int flag;
                int time = 0;
                for(int i = 0;i<arr.length-1;i++){   //从小到大排序
                        for(int j = i+1;j<arr.length;j++){
                                if(arr[i] > arr[j]){
                                        temp = arr[i];
                                        arr[i] = arr[j];
                                        arr[j] = temp;
                                }
                        }
                }

                for(int i = 0;i<num;i++){
                        result[i] = arr[arr.length-i-1];   //获取最大的值
                }
                flag = num - 1;   //最小时间的下标
                for(int i =arr.length - num -1;i>=0; i--){
                        result[flag] += arr[i];
                        for(int j = 0;j<num;j++){
                                if(result[j] <result[flag]){
                                        flag = j;  //记录最小时间
                                }
                        }       
                }
                time = result[0];
                for(int i = 0; i < result.length;i++){
                       
                        if(result[i] > time)
                                time = result[i];
                }
                return time;
使用道具 举报

回复

发表于 2015-12-8 17:04:26 | 显示全部楼层
给定一个长度为N的整型数组arr,其中有N个互不相等的自然数1~N,请实现arr的排序?
冒泡排序?复杂度怎么算?
使用道具 举报

回复

sunyani的头像 楼主
发表于 2015-12-9 08:35:29 | 显示全部楼层
wx_auO4dXUO 发表于 2015-12-8 17:04
给定一个长度为N的整型数组arr,其中有N个互不相等的自然数1~N,请实现arr的排序?
冒泡排序?复杂度怎么算 ...

方法随意,复杂度是看整个排序的耗时
使用道具 举报

回复

发表于 2015-12-9 10:20:54 | 显示全部楼层
public void sort2(int[] arr){
          int tmp=0;
           for (int i=0; i!=arr.length;i++){
while (arr[i]!=i+1){
          tmp=arr[arr[i]-1=arr[i];
           arr[i]=tmp;
}
}
}
使用道具 举报

回复

发表于 2015-12-9 10:21:04 | 显示全部楼层
本帖最后由 jccgft12000 于 2015-12-10 15:02 编辑

1.
public void sort2(int[] arr){
          int tmp=0;
           for (int i=0; i!=arr.length;i++){
while (arr!=i+1){
          tmp=arr[arr-1=arr;
           arr=tmp;
}
}
}


2.
for (int i = 1; i <= n; i++){

  while(arr != i){ // 这个循环总共最多执行n次

  t = arr[arr];

  arr[arr] = arr;

  arr = t;

  ++cnt;

  }


使用道具 举报

回复

发表于 2015-12-9 10:24:30 | 显示全部楼层
public void sort2(int[] arr){
          int tmp=0;
           for (int i=0; i!=arr.length;i++){
while (arr[i]!=i+1){
          tmp=arr[arr[i]-1=arr[i];
           arr[i]=tmp;
}
}
}
使用道具 举报

回复

发表于 2015-12-9 10:24:51 | 显示全部楼层
public void sort2(int[] arr){
          int tmp=0;
           for (int i=0; i!=arr.length;i++){
while (arr!=i+1){
          tmp=arr[arr-1=arr;
           arr=tmp;
}
}
}
使用道具 举报

回复

发表于 2015-12-9 10:36:43 | 显示全部楼层
第一题
public void sort2(int[] arr){
          int tmp=0;
           for (int i=0; i!=arr.length;i++){
while (arr[i]!=i+1){
          tmp=arr[arr[i]-1=arr[i];
           arr[i]=tmp;
}
}
}
使用道具 举报

回复

发表于 2015-12-9 12:36:46 | 显示全部楼层
楼主加油
使用道具 举报

回复

发表于 2015-12-9 13:52:09 | 显示全部楼层
请问是在js上编写代码么
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部