精华内容
下载资源
问答
  • (1)Array.Sort()方法可以实现对一维数组的排序 (2)Array.Reverse()方法可以用来对整个数组的顺序进行反转 (3)Array.BinarySearch()方法实现在已经排序的一维数组中查找元素 下面进行一道练习题说明: 最后...

    (1)Array.Sort()方法可以实现对一维数组的排序
    (2)Array.Reverse()方法可以用来对整个数组的顺序进行反转
    (3)Array.BinarySearch()方法实现在已经排序的一维数组中查找元素
    在这里插入图片描述
    在这里插入图片描述
    下面进行一道练习题说明:
    在这里插入图片描述
    最后运行的结果如下:
    在这里插入图片描述
    附上代码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace 数组排序
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Csort csort = new Csort();
                if (txt1.Text.Trim() != "")
                {
                    string str = txt1.Text;//输入十个数字,中间逗号隔开
                    string[] strs = str.Split(',');              
                    int []array = new int[strs.Length];
                    for (int i=0;i<strs.Length; i++)
                    {
                        array[i] = Convert.ToInt32(strs[i]);
                    }
                    //Array.Sort(array);
                    csort.ArraySort(array);
                    if (checkBox1.Checked  ==true)
                    {
                        foreach (int f in array)
                        {
                            txt2.Text += f + " ";
                        }
                    }
                    int a = int.Parse(txt4.Text);
                    int index=csort.ArraySearch(array, a);
                    if(checkBox3 .Checked ==true)
                    {
                        txt4.Text = a+"位置是:" + index;
                    }
                    
                    //Array.Reverse(array);
                    csort.ArrayReverse(array);
                    if (checkBox2 .Checked ==true)
                    {
                        foreach(int f in array)
                        {
                            txt3.Text += f + " ";
                        }
                    }
                }
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
    
            }
        }
        public class Csort
        {
            public Array ArraySort(int  [] Array)
            {
                System.Array.Sort(Array);
                return Array;
            }
            public int ArraySearch(int[] Array, int a)
            {
    
                int index = System.Array.BinarySearch(Array, a)+1;
                if (index < 0)
                    MessageBox.Show("数组中不存在" + a);
                return index;
    
            }
            public Array ArrayReverse(int[] Array)
            {
                System.Array.Reverse(Array);
                return Array;
            }
    
        }
    }
    
    
    展开全文
  • Array.Sort() int[] arr = new int[] {19,3,9,6,7,5,8 }; Array.Sort(arr); foreach (var item in arr) { Console.Write(" "+item); } //////打印...

    Array.Sort()

    int[] arr = new int[] {19,3,9,6,7,5,8 };
                Array.Sort(arr);
                foreach (var item in arr)
                {
                    Console.Write(" "+item);
                }

    //打印结果为:3 5 6 7 8 9 19

    Array.Reverse()

    int[] arr = new int[] {19,3,9,6,7,5,8 };
                Array.Reverse(arr);
                foreach (var item in arr)
                {
                    Console.Write(" "+item);
                }

    //打印结果为: 8 5 7 6 9 3 19

    注意:Array.Reverse()的方法的意思就是把数字反过来搞一遍,不是用来比较大小数的

    展开全文
  • array.sort

    2018-07-28 18:57:51
    1、Arrays.sort(int[] a)  1 import java.util.Arrays;  2   3 public class Main {  4 public static void main(String[] args) {  5  6 int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};  7 ...

    一:

    1、Arrays.sort(int[] a)

     1 import java.util.Arrays;
     2 
     3 public class Main {
     4     public static void main(String[] args) {
     5         
     6         int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
     7         Arrays.sort(a);
     8         for(int i = 0; i < a.length; i ++) {
     9             System.out.print(a[i] + " ");
    10         }
    11     }
    12 
    13 }

    运行结果如下:

    0 1 2 3 4 5 6 7 8 9 

     

    二:

     1 import java.util.Arrays;
     2 
     3 public class Main {
     4     public static void main(String[] args) {
     5         
     6         int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
     7         Arrays.sort(a, 0, 3);
     8         for(int i = 0; i < a.length; i ++) {
     9             System.out.print(a[i] + " ");
    10         }
    11     }
    12 
    13 }
     

     

    运行结果如下:

    7 8 9 2 3 4 1 0 6 5 

    上例只是把 9 8 7排列成了7 8 9

     

    三:逆序排列

                Arrays.sort(a, new Comparator(){
     
                public int compare(int a, int b){
                           return b-a;
    }
                })

    运行结果如下:

    9 8 7 6 5 4 3 2 1  0

    展开全文
  • 整体升序:Array.Sort(A); 整体降序:先升序,再反转Array.Reverse(A); 局部升序:Array.Sort(A,2,4);//从索引为2的元素开始的4个元素进行升序 局部降序:Array.Reverse(A,2,3);//对索引为2的元素开始的3个元素...

    【对一维数组】

    • 数据:int[] A = {16, 67, 12, 50, 8, 46, 4};
    • 整体升序:Array.Sort(A);
    • 整体降序:先升序,再反转Array.Reverse(A);
    • 局部升序: Array.Sort(A,2,4);//从索引为2的元素开始的4个元素进行升序
    • 局部降序:Array.Reverse(A,2,3);//对索引为2的元素开始的3个元素进行反转,这是接着Array.Sort执行的

    从左到右的图片分别是从整体升序到局部降序的结果

    【对交错数组】

    • 有时我们希望根据交错数组(不是二维数组)中某一行中的某个元素来确定不同行之间的排序,这时就要自定义实现比较方法。对于int类型或string类型的数组,C#内部已经帮你实现了比较方法,所以只需要把数组(具体来说是数组的引用)作为参数传递给Array.Sort()就好了。
    • 代码
    using System;
    using System.Collections.Generic;
    
    namespace Code
    {
        class Program
        {
    
            static void Main(string[] args)
            {
                //随机生成交错数组
                int[][] nums=new int[10][];
                Random ra=new Random();
                for (int i = 0; i < 10; i++)
                {
                    nums[i] = new int[2] {ra.Next(30), ra.Next(30)};//每行只有两个元素
                }
                Array.Sort(nums,new CompareMethod());//调用的方法是public static void Sort<T>(T[] array, IComparer<T> comparer);
                // Array.Sort(nums,2,6,new CompareMethod());//对从索引为2开始的6个元素排序
                for (int i = 0; i < 10; i++)
                {
                    Console.WriteLine(nums[i][0]+" "+nums[i][1]);
                }
                Console.ReadLine();
            }
            public class CompareMethod : IComparer<int[]>  //继承IComparer<T>接口,T为要比较的元素的类型
            {                                             //类中类,也可以放在类外面
                public  int Compare(int[] x, int[] y)
                {
                    return x[0] - y[0];//返回值大于0表示x>y,等于0表示x=y,小于0表示x<y。Array.Sort内部会根据这个返回值来判断x和y的大小关系,并把小的元素放在前面
                                       //如果想降序怎么办,返回y[0]-x[0]即可
                }
            }
        }
    
        
    }
    •  输出结果

    【结构体数组】

    • 每次继承接口写起来会比较麻烦,更简单的方法是用委托,也即调用public static void Sort<T>(T[] array, Comparison<T> comparison);方法,Comparison<T>是一个泛型委托public delegate int Comparison<in T>(T x, T y);
    • 对学生的成绩进行排序,希望成绩高的排在前面,对成绩相同的学号小的排在前面
    • 代码
    using System;
    using System.Collections.Generic;
    
    namespace 笔试
    {
        class Program
        {
    
            static void Main(string[] args)
            {
                Student[] nums = new Student[5];
                nums[0]=new Student(1001,90,"张");
                nums[1]=new Student(1009,83,"王");
                nums[2]=new Student(1004,88,"李");
                nums[3]=new Student(1002,88,"何");
                nums[4]=new Student(1005,93,"赵");
                Array.Sort(nums,CompareMethod);
                for (int i = 0; i < nums.Length; i++)
                {
                    Console.WriteLine("第"+(i+1)+"名"+nums[i].name+" 学号:"+nums[i].id+" 分数:"+nums[i].score);
                }
                Console.ReadKey();
            }
    
            public struct Student
            {
               public int id;
               public int score;
               public string name;
    
                public Student(int id, int score, string name)
                {
                    this.id = id;
                    this.score = score;
                    this.name = name;
                }
            }
    
            public static int CompareMethod(Student a, Student b)
            {
                int temp = b.score - a.score;
                if (temp == 0)
                {
                    temp = a.id - b.id;
                }
                return temp;
            }
        }  
    }
    • 输出结果

     

    【使用Lambda表达式】

    • lambda表达式可以基于很简单的方法生成委托,且避免了需要声明新方法(及CompareMethod)的麻烦,使得代码更简单。当然,另一方面不熟悉的话也更不好理解。
    • 只需要对调用的Array.Sort简单改一下即可
      Array.Sort(nums, (a, b) =>
                {
                    int temp = b.score - a.score;
                    if (temp == 0)
                        temp = a.id - b.id;
                    return temp;
                });
                //注解:
                //a b就是参数的名字,相当之前的Student a,Student b,只不过把Student省略了,默认了是Student类型的,所以参数名字任意,写成aaa,bbb都可以
                //参数要用括号括起来,就跟一般方法的参数要用括号一样
                //之后跟着“=>”号
                //接下来是花括号,就跟一般方法要加花括号一样
                //在花括号内部的代码和之前的CompareMethod方法完全一样
                //关于返回值和参数,要看这个委托定义的是什么样子的

    【List.Sort()排序】

    List.Sort方法内部调用了Array.Sort,排序实现完全和Array.Sort一样

    展开全文
  • Add goog.array.sortBy

    2021-01-10 01:01:55
    goog.array.sort(array, goog.string.caseInsensitiveCompare) </code></pre> <p>which sacrifices performance by calling <code>String(str).toLowerCase()</code> twice for every comparison. (In practice, ...
  • Array.sort()

    2021-02-25 08:50:27
    如果不带参数调用 array.sort() 方法,将会按字母序对元素进行排序。所以不应该简单的用 array.sort() 对数字进行升序排序。 但是你可以指定一个比较器函数 array.sort(comparator) 来定制元素的排序方式。建议使用...
  • ruby array Array.sort! 方法 (Array.sort! Method) In this article, we will study about Array.sort! Method. You all must be thinking the method must be doing something related to the sorting of ...
  • Array.Sort

    2016-09-29 13:20:43
    每个元素 array 必须实现 IComparable 接口,才能使用中的每个其他元素的比较 array。 如果未成功完成排序,则结果不确定。 此方法使用反省排序 (introsort) 算法,如下所示︰ 如果分区大小少于 ...
  • ruby array Array.sort_by! 方法 (Array.sort_by! Method) In this article, we will study about Array.sort_by! Method. You all must be thinking the method must be doing something related to the sorting ...
  • ruby array Array.sort方法 (Array.sort Method) In this article, we will study about Array.sort method. You all must be thinking the method must be doing something related to the sorting of elements or ...
  • Array.Sort()排序的原理

    2021-02-01 14:20:06
    Array.Sort()函数,利用这个函数可直接对数组中的数字进行排序,比冒泡排序简单得多了,仅仅只需要一行代码,下面是代码和运行结果。 int[] nums = new int[] { 2, 652, 32, 1, 6, 65 }; Array.Sort(nums); //...
  • Array.Sort()是在我们日常工作中非常常用的函数,不需要自己编写排序算法就可以方便的对数组进行排序。利用Array.Sort()排序具有以下特点:排序是不稳定的采...
  • ruby sort_by Array.sort_by方法 (Array.sort_by Method) In this article, we will study about Array.sort_by Method. You all must be thinking the method must be doing something related to the sorting of ...
  • Array.sort 如何根据字符串长度排序? 这里的知识点包括: Array,sort() 函数。其第一个参数是要排序的数组,第二个参数是比较方法。 lambda 表达式。其形式为 (参数) -> 逻辑表达式。 Integer.compare() 函数。...
  • 二维数组需要这样定义 int[][] nums= new int[][] { ...Array.Sort(nums, (x, y) => x[1].CompareTo(y[1])); Array.Sort(nums, (a, b) => a[1] - b[1]); Array.Sort(nums, (a, b) => { return p1[1] - p2
  • Array.Sort有N个重载,都是调用同一个方法实现排序(Array.Sort<T>先不管) public static void Sort(Array keys, Array items, int index, int length, IComparer comparer) { // 省略一堆参数检查代码 ...
  • Array.sort()默认都是进行字符串比较,哪怕是数字也会先转换成字符串,然后一个字符一个字符的比较。 const arr = [1, 2, 3 ,10, 12] console.log(arr.sort()); // [1, 10, 12, 2, 3] 比较数字 // 定义一个compare...
  • 今天看c#plus 中的一个比较冒泡排序与 System.Array.Sort() 性能,发现System.Arry.Sort()的性能要远远的优于冒泡排序,下面代码大家有兴趣可以看一下: 1usingSystem; 2 3classSortingCompetition 4{ 5...
  • C# 字典排序Array.Sort

    2015-12-04 18:27:00
    Array.Sort可以实现便捷的字典排序,但如果完全相信他,那么就容易产生些异常!太顺利了,往往是前面有坑等你。 比如:微信接口,好多地方需要签名认证,签名的时候需要用的字典排序,如果只用Array.Sort()会出现...
  • 1、快速排序:首先是最简单的Array.sort,直接进行排序: public static void main(String[] args) { int[] arr = {4,3,5,1,7,9,3}; Arrays.sort(arr); for (int i : arr){ System....
  • C# Array.sort

    2013-04-28 21:02:49
    Array.sort 有3种方式: 待排序对象实现了IComparable 接口 class Person :IComparable{ private String firstname; public String Firstname { get { return firstname; } s
  • C# Array.sort排序

    千次阅读 2017-07-30 13:55:37
    C#视频的看到冒泡排序以后,小杨老师讲了一个更简单的排序方法,这个方法就是Array.Sort()函数,利用这个函数可直接对数组中的数字进行排序,比冒泡排序简单得多了,仅仅只需要一行代码,下面是代码和运行结果。...
  • 关于array.sort(array,array) // 基于第一个 System.Array 中的关键字,使用每个关键字的 System.IComparable 实现,对两个一维 System.Array // 对象(一个包含关键字,另一个包含对应的项)进行...
  • Array.sort数组排序结论和原理 1、若 a 小于 b,即 a - b 小于零,则返回一个小于零的值,数组将按照升序排列;若 a 等于 b,则返回 0;若 a 大于 b, 即 a - b 大于零,则返回一个大于零的值,数组将按照降序排列。 ...
  • 昨天我们比较了Array.Sort方法与LINQ排序的性能,知道了LINQ排序的性能以较大幅度落后于Array.Sort方法。而对于Array.Sort来说,性能最高的是其中使用Comparer.Default作为比较器的重载方法。在前文的末尾我们做出了...
  • 昨天我们比较了Array.Sort<T>方法与LINQ排序的性能,知道了LINQ排序的性能以较大幅度落后于Array.Sort<T>方法。而对于Array.Sort<T>来说,性能最高的是其中使用Comparer<int>.Default作为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,300
精华内容 7,320
关键字:

array.sort