2 qq 30137777 qq_30137777 于 2015.07.27 22:49 提问

c#数组元素排序的问题

using System;
using System.Collections.Generic;
using System.Text;

namespace 数组排序_升序排列_
{
class Program
{
static void Main(string[] args)
{
int[] myArray = new int[10] { 10, 54, 34, 45, 4, 8, 38, 9, 7, 11 };
Console.WriteLine("原始数组为: ");
foreach (int number in myArray)
{
Console.Write(number + " ");
}
Console.WriteLine();
int i, j, t, min;
for (i = 0; i < 10; i++)
{
min = i;
for (j = i + 1; j < 10; j++)
{
if (myArray[j] < myArray[min])
{
min = j;
}
}
if (min != i)
{
t = myArray[i];
myArray[i] = myArray[min];
myArray[min] = t;
}
Console.WriteLine("排序后数组为: ");
foreach (int number in myArray)
{
Console.Write(number +" ");
}
Console.ReadLine();
}
}
}
}


代码就这样,为什么没排好序?只有两个数字位置变化了。

3个回答

guwei4037
guwei4037   Ds   Rxr 2015.07.27 23:01
已采纳

把输出部分拿到for循环外面即可。

 class Program
    {
        static void Main(string[] args)
        {
            int[] myArray = new int[10] { 10, 54, 34, 45, 4, 8, 38, 9, 7, 11 };
            Console.WriteLine("原始数组为: ");
            foreach (int number in myArray)
            {
                Console.Write(number + " ");
            }
            Console.WriteLine();
            int i, j, t, min;
            for (i = 0; i < 10; i++)
            {
                min = i;
                for (j = i + 1; j < 10; j++)
                {
                    if (myArray[j] < myArray[min])
                    {
                        min = j;
                    }
                }
                if (min != i)
                {
                    t = myArray[i];
                    myArray[i] = myArray[min];
                    myArray[min] = t;
                }
            }

            Console.WriteLine("排序后数组为: ");
            foreach (int number in myArray)
            {
                Console.Write(number + " ");
            }
            Console.ReadLine();
        }
    }
qq_30137777
qq_30137777 懂了,谢谢
接近 3 年之前 回复
CSDNXIAOD
CSDNXIAOD   2015.07.27 23:00

数组元素排序
数组中的元素排序(选择和冒泡)
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

bailiningshuang
bailiningshuang   2015.07.28 08:50

不需要使用什么冒泡算法,LINQ查询一行代码就可以搞定

             int[] myArray = new int[10] { 10, 54, 34, 45, 4, 8, 38, 9, 7, 11 };
            var query1 = myArray.OrderBy(val => val);//升序
            var query2 = myArray.OrderByDescending(val => val);//降序
            foreach (var item in query1)
           {
               Console.Write(item);
           }
            foreach (var item in query2)
            {
                Console.Write(item);
            }
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C#数组随机排序
public static T[] RandomSort(T[] array)        {            int len = array.Length;            Random rand = new Random();            System.Collections.Generic.List list = new System.Collecti
用C#实现对数组元素排序(冒泡法)
昨天学习了如何用Split方法对数组进行处理,还学习了如何用Array.Sort()方法对数组进行排序,今天来研究下冒泡算法 冒泡算法(Bubble Sort)先画表来说明下: 比如说,我们有个八位的int型数列,int[8] intArray=(8,7,6,5,4,3,2,1);那么,假设它开始在内存中是这样的 序号:0、1、2、3、4、5、6、7 值值:8、7、6、5、4、3、
二维数组中元素排序——彻底排序
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * 作 者: 李兆庆 * 完成日期: 2012 年 9 月 18 日 * 输入描述: * 问题描述及输出:
数组从大到小排序
用C#语句编写的排序方法,用的是冒泡排序
用C#实现对数组元素排序(Array.Sort)方法
siki老师出的又一道题目,刚看题目觉得有点难,其实想通了就不难了。 题目是:编写一个控制台程序,要求用户输入一组数字用空格间隔,对用户输入的数字从小到大输出。(Array.Sort方法和冒泡排序) 今天先搞定了Array.Sort方法排序,其实调用Array.Sort方法很简单,觉得有困难的是,怎么对数组进行处理? 思路如下: 一、处理用户输入的数组 用户输入一组数字用空格间隔,怎么才
对数组进行排序、求最大值和求元素和的算法都编写为函数模板,采用相关数据进行测试
#include using namespace std; template void sort(T * a,int n){ for(int i=0;i<n;i++){ int p=i; for(int j=i;j<n;j++) if(a[p]<a[j]) p=j; int t=a[i]; a[i]=a[p]; a[p]=t; } } template void display
Java数组元素排序
java.util.Arrays类的sort()方法提供了数组元素排序功能:     import java.util.*;     public class Sort {         public static void main(String[] args) {             int [] number = {5,600,16,56,747,340,634,7010}
数组排序问题的两种方法:插入排序算法和递归(分治)算法
在这里我将讨论数组的排序问题,并引入插入排序算法和递归算法求解。 1、插入排序              这里通过算法导论中的伪代码说明算法过程。         Insertion-sort(A)         for(j=2 to A.length)                   key=A[j]                   //Insert A[j] into s
C++数组元素比较排序
#include using namespace std; /*比较排序问题*/ int main() { const int n = 6; int i[n] = {23,45,1,8,6,666}; int k; int t; for (k=1; k<n; k++)//6个数共需要比较5回 { for (int j=0; j<(n-k); j++)//第一回比较要比较6个数即5
第八章实验3
编写一个程序,使用类模板对数组元素进行排序、倒置、查找和求和 #include #include using namespace std; const int n=8; template class Array{ public: Array(T *p) { set=p; } ~Array(){} void inversion();//倒置 T sum();//求和 void