算法基础系列之五:数组排序类

有一段时间没有更新博客了,这段时间比较郁闷。没什么新东西,把前几天面试的一道算法题写一下。应该是很简单的,只是很久没理算法这种东西了。
[题目]:存在两个数组a[n]b[m]n>=m>0。需要取出数组a中最小的元素放入b[0],次小的放入b[1],依此类推,不能修改数组a,不能使用新数组。不排除数组a中的元素的值存在相等的可能性。
[程序]

static void Main(string[] args)
{
    
int[] a = new int[102242502639 };
    
int[] b = new int[8];
    
//
    int x1 = int.MaxValue;
    
int x2 = -1;
    
bool flag = false;
    
for (int i = 0; i < b.Length; i++)
    
{
        
for (int j = 0; j < a.Length; j++)
        
{
            
for (int l = 0; l < i; l++)
            
{
                
if (b[l] == j)
                
{
                    flag 
= true;
                    
break;
                }

            }

            
if (!flag && a[j] <= x1)
            
{
                x1 
= a[j];
                x2 
= j;
            }

            flag 
= false;
        }

        x1 
= int.MaxValue;
        b[i] 
= x2;
    }

    
//
    for (int i = 0; i < b.Length; i++)
    
{
        b[i] 
= a[b[i]];
    }

    
//
    for (int i = 0; i < b.Length; i++)
    
{
        Console.WriteLine(b[i]);
    }

    Console.Read();
}
原文地址:https://www.cnblogs.com/morvenhuang/p/1231752.html