当前位置: 首页 > news >正文

做界面的网站网站建设服务费怎么做会计分录

做界面的网站,网站建设服务费怎么做会计分录,wordpress识图,徐州市水利工程建设有限公司网站基数排序是生活中咱们写程序用的比较少的排序,但是这个排序比较巧妙,今天就给大家讲一讲,原理都在代码里面,下面会给一些解释。 import java.util.Arrays;public class Code04_RadixSort {// only for no-negative valuepublic s…

        基数排序是生活中咱们写程序用的比较少的排序,但是这个排序比较巧妙,今天就给大家讲一讲,原理都在代码里面,下面会给一些解释。

import java.util.Arrays;public class Code04_RadixSort {// only for no-negative valuepublic static void radixSort(int[] arr) {if (arr == null || arr.length < 2) {return;}radixSort(arr, 0, arr.length - 1, maxbits(arr));}public static int maxbits(int[] arr) {int max = Integer.MIN_VALUE;for (int i = 0; i < arr.length; i++) {max = Math.max(max, arr[i]);}int res = 0;while (max != 0) {res++;max /= 10;}return res;}// arr[L..R]排序  ,  最大值的十进制位数digitpublic static void radixSort(int[] arr, int L, int R, int digit) {final int radix = 10;int i = 0, j = 0;// 有多少个数准备多少个辅助空间int[] help = new int[R - L + 1];for (int d = 1; d <= digit; d++) {// 有多少位就进出几次// 10个空间// count[0] 当前位(d位)是0的数字有多少个// count[1] 当前位(d位)是(0和1)的数字有多少个// count[2] 当前位(d位)是(0、1和2)的数字有多少个// count[i] 当前位(d位)是(0~i)的数字有多少个int[] count = new int[radix]; // count[0..9]for (i = L; i <= R; i++) {// 103  1   3// 209  1   9j = getDigit(arr[i], d);count[j]++;}for (i = 1; i < radix; i++) {count[i] = count[i] + count[i - 1];}for (i = R; i >= L; i--) {j = getDigit(arr[i], d);help[count[j] - 1] = arr[i];count[j]--;}for (i = L, j = 0; i <= R; i++, j++) {arr[i] = help[j];}}}public static int getDigit(int x, int d) {return ((x / ((int) Math.pow(10, d - 1))) % 10);}// for testpublic static void comparator(int[] arr) {Arrays.sort(arr);}// for testpublic static int[] generateRandomArray(int maxSize, int maxValue) {int[] arr = new int[(int) ((maxSize + 1) * Math.random())];for (int i = 0; i < arr.length; i++) {arr[i] = (int) ((maxValue + 1) * Math.random());}return arr;}// for testpublic static int[] copyArray(int[] arr) {if (arr == null) {return null;}int[] res = new int[arr.length];for (int i = 0; i < arr.length; i++) {res[i] = arr[i];}return res;}// for testpublic static boolean isEqual(int[] arr1, int[] arr2) {if ((arr1 == null && arr2 != null) || (arr1 != null && arr2 == null)) {return false;}if (arr1 == null && arr2 == null) {return true;}if (arr1.length != arr2.length) {return false;}for (int i = 0; i < arr1.length; i++) {if (arr1[i] != arr2[i]) {return false;}}return true;}// for testpublic static void printArray(int[] arr) {if (arr == null) {return;}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}System.out.println();}// for testpublic static void main(String[] args) {
//		int testTime = 500000;
//		int maxSize = 6;
//		int maxValue = 100000;
//		boolean succeed = true;
//		for (int i = 0; i < testTime; i++) {
//			int[] arr1 = generateRandomArray(maxSize, maxValue);
//			int[] arr2 = copyArray(arr1);
//			radixSort(arr1);
//			comparator(arr2);
//			if (!isEqual(arr1, arr2)) {
//				succeed = false;
//				printArray(arr1);
//				printArray(arr2);
//				break;
//			}
//		}
//		System.out.println(succeed ? "Nice!" : "Fucking fucked!");
//
//		int[] arr = generateRandomArray(maxSize, maxValue);int[] arr = new int[]{2,1,5,3,7};printArray(arr);radixSort(arr);printArray(arr);}}

上面是基数排序的整段代码,其实最核心的还是下面部分:

public static void radixSort(int[] arr, int L, int R, int digit) {final int radix = 10;int i = 0, j = 0;// 有多少个数准备多少个辅助空间int[] help = new int[R - L + 1];for (int d = 1; d <= digit; d++) {// 有多少位就进出几次// 10个空间// count[0] 当前位(d位)是0的数字有多少个// count[1] 当前位(d位)是(0和1)的数字有多少个// count[2] 当前位(d位)是(0、1和2)的数字有多少个// count[i] 当前位(d位)是(0~i)的数字有多少个int[] count = new int[radix]; // count[0..9]for (i = L; i <= R; i++) {// 103  1   3// 209  1   9j = getDigit(arr[i], d);count[j]++;}for (i = 1; i < radix; i++) {count[i] = count[i] + count[i - 1];}for (i = R; i >= L; i--) {j = getDigit(arr[i], d);help[count[j] - 1] = arr[i];count[j]--;}for (i = L, j = 0; i <= R; i++, j++) {arr[i] = help[j];}}}
  • for (i = R; i >= L; i--): 这是一个循环,从数组中的右端(R)向左端(L)遍历。

  • j = getDigit(arr[i], d): 这一行代码用于获取第 i 个元素 arr[i] 在第 d 位上的数字 j。通常,getDigit 函数会根据位数 d 来提取数字。例如,如果 d 是个位数,那么 getDigit 可能会返回 arr[i] 的个位数字;如果 d 是十位数,那么它可能会返回 arr[i] 的十位数字,以此类推。

  • help[count[j] - 1] = arr[i]: 这行代码将第 i 个元素 arr[i] 放入辅助数组 help 中的合适位置。count[j] 表示第 j 个数字在当前位数 d 上的出现次数,通过 count[j] - 1 找到 jhelp 数组中的合适位置,然后将 arr[i] 放入这个位置。

  • count[j]--: 在将 arr[i] 放入 help 数组后,将 count[j] 减一,以便下一个相同数字的元素(如果有的话)可以放入 help 数组的前一个位置。

上面是整段核心代码的解释,通过这段代码的解释,可以 把整个流程都搞明白了 

http://www.yayakq.cn/news/319689/

相关文章:

  • dw做的网站如何让文字换行ppt模板素材免费
  • 企业网站建设注意什么衡东建设局网站
  • 公司网站开发主要技术网站开发需要解决的问题
  • 网站模板怎么修改logo静安建设机械网站
  • 网校网站毕业设计的方案wordpress搬迁数据库连接失败
  • 苏州企业网站建设公司在电脑上哪里可以做网站
  • 南宁网站设计运营游戏秒玩网站
  • 网站推广策划方案书江苏官网建设公司
  • 山西门户网站建设陕西建省级执法人才库
  • 深圳网络营销网站建设海外网络推广技巧
  • php网站开发基础入门教程wordpress支付文件在哪
  • 河北怀来县建设局网站秦皇岛 网站
  • 最牛的视频网站建设互联网有创意的公司名字大全
  • 大良建网站中天建设集团有限公司资质等级
  • 新余 网站建设怎么登陆建设银行网站看开户行
  • 福建网站建设公佛山市外贸网站建设公司
  • 旺道网站排名优化金华高端网站建设公司
  • 广州专业网站建设哪家公司好在线动画手机网站模板下载安装
  • 网站备案需要花钱吗flash 如何做游戏下载网站
  • 成都微信微网站建设校园网网络规划与设计方案
  • 厦门模板建站成华区网站建设
  • 网站建设招标书组成男科医生免费咨询
  • 网站怎样做银联支付唐山城乡建设网站
  • 网站网站怎么做的广元市利州区建设局网站
  • 定制做网站设计wordpress 4.6.1
  • 企业建设网站应如何申请wordpress 中文语言设置
  • 国际域名注册网站天津建设银行官方网站
  • 做服装零售上什么网站wordpress评论表情不显示
  • 祁阳县住房和城乡规划建设局网站广州建设执业资格注册中心网站
  • 深圳网站建设 工作室美食网站首页设计