程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了打印数组的第 k 个最小数字大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决打印数组的第 k 个最小数字?

开发过程中遇到打印数组的第 k 个最小数字的问题如何解决?下面主要结合日常开发的经验,给出你关于打印数组的第 k 个最小数字的解决方法建议,希望对你解决打印数组的第 k 个最小数字有所启发或帮助;

以下代码显示错误输出:

这是我的代码:

int[] x = {7,10,4,20,15};
int n = x.length; 
int k = 4; 
int ctr = 0;              
                            
for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        if (x[i] > x[j]) {
            ctr++;
        }
        if ((ctr + 1) == k){
            ans = x[i];
            break;
        }
    }
}
System.out.println(ans);

解决方法

要获得 Unknown column teams.id in where clause 最小的元素,请尝试以下操作:

  1. 使用 Kth 对数组进行排序,或者如果您必须自己进行排序,请使用简单的排序算法,例如 bubble sort;

  2. Arrays.sort 变量初始化为 1;

  3. 遍历数组从count直到i = i = 0;,比较当前元素和下一个元素,如果不相等就加一,否则不加;

  4. 停止直到计数器 == N - 1 元素

之后,您可以改进代码以处理极端情况,例如数组没有 Kth 元素等。

使用上述输入算法

Kth;

找到第四小的。

  1. 排序数组 'x' -> int[] x = {7,10,4,20,15}

  2. 计数 = 1;

  3. 遍历数组 4 != 7 Count = 2;

  4. 7 != 10 -> 计数 = 3;

  5. 10 == 10 -> 计数 = 3;

  6. 10 != 15 -> 计数 = 4;

  7. 停止,{4,7,15,20} 是第四小的元素

,

如果你想坚持你的算法试试这个,但我同意其他人的观点,array.sorted 的解决方案更好

int[] x = {7,15};
int n = x.length; 
int k = 4; 
int ctr = 0; 
int ans = 0             
                            
for (int i = 0; i < n; i++) {
    ctr = 0;
    for (int j = 0; j < n; j++){
        if (x[i] > x[j]) {
            ctr++;
        }
    }

    if ((ctr + 1) == k){
        ans = x[i];
        break;
    }

}
System.out.println(ans);

此方法正在寻找“一个大于数组中其他 k 个数字的数字”,而不是像您所说的“取第 k 个数字”

例如,这种方法在以下情况下会失败:{4,2,2} 并且您被要求选择第 3 个

没有比其他2大的数:4比5大,2比0大 所以在你的提案中 ctr 变量永远不会 = 3 并且算法会失败。

大佬总结

以上是大佬教程为你收集整理的打印数组的第 k 个最小数字全部内容,希望文章能够帮你解决打印数组的第 k 个最小数字所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:k