C#中陣列的排序
Array 類是一個抽象類,是所有陣列的基類。用方括號表示陣列會建立一個派生自 Array 類的新類,這個類可以使用 Array 類定義的方法和屬性。
下面說一下陣列的排序。 Array 有一個靜態方法給陣列元素排序,該種元素型別必須實現 Icompare 介面。而簡單型別(如 int,string 型別,他們已經實現了該介面,可以直接使用 sort 方法進行排序)。
下面給出示例:
如果是自定義型別,只需要實現泛型介面 Icompare<T> 即可。public class TestSort { int [] myArray = {4,3,1,2,456,12,23,34}; public void Test() { // 呼叫 sort 方法對陣列元素進行排序(預設排序是從小到大) Array.Sort(myArray); // 結果:1,2,3,4,12,23,34,456 // 從大到小排序,使用 Reverse 方法反轉陣列 Array.Reverse(myArray); // 結果:456,34,23,12,4,3,2,1 } }
public class MyData:IComparable<MyData> { public int first; public int second; public MyData(int f,int s) { first = f; second = s; } // 自定義資料比較,按照 first 和 second 的大小進行從小到大排序,first 相同則比較 second public int CompareTo(MyData obj) { int a = first.CompareTo(obj.first); if(a == 0) { return second.CompareTo(obj.second); } return a; } } public class TestMyArray { MyData [] myArray = { new MyData(1,2), new MyData(1,3), new MyData(2,2), new MyData(3,2), new MyData(2,2), }; public void Test() { // 呼叫 sort 方法對陣列元素進行排序 Array.Sort(myArray); // 結果:(1,2),(1,3),(2,2),(2,2),(3,2) // 從大到小排序,使用 Reverse 方法反轉陣列 Array.Reverse(myArray); } }
相關推薦
C#中陣列的排序
Array 類是一個抽象類,是所有陣列的基類。用方括號表示陣列會建立一個派生自 Array 類的新類,這個類可以使用 Array 類定義的方法和屬性。 下面說一下陣列的排序。 Array 有一個靜態方法給陣列元素排序,該種元素型別必須實現 Icompare 介面。而簡單型別
C#中DataTable排序
替換 nbsp round color left c# back font dataview 一、排序 1.獲取DataTable的默認視圖 2.對視圖設置排序表達式 3.用排序後的視圖導出的新DataTable替換就DataTable(Asc升序可省略,多列排序用"
c中陣列的總結
陣列 定義:陣列是有序的並且具有相同型別的資料的集合。 一維陣列 1、一般形式:型別說明符數 陣列名[常量表達式];例如:int a[10];元素為a[0]-a[] 2、常量表達式中不允許包含變數,可以包含常量或符號常量。 3、陣列元素下標可以是任何整型常量、整型變數或任何整型
php中陣列排序
1.根據值排序 忽略鍵名:升序sort() 降序rsort() 使用者自定義usort($arr,$callback)回撥 保留鍵名: 升序asort() 降序arsort() 使用者自
C++中陣列和指標之間的關係梳理
C++中陣列和指標是兩個十分常用且關係密切的資料結構,“陣列即指標,指標即陣列”的言論一直層出不窮。從本質上講,陣列和指標是不同的,陣列是具有確定數量的元素,而指標只是一個標量值。但是,在某些情況下陣列和指標又能相互轉換。下面,將從多個角度分析陣列和指標。 1. 陣列和指標互相轉換 陣列
c#中氣泡排序演算法描述
int temp = 0; int b = 0; int[] arr = { 23, 44, 66, 76, 98, 11, 3, 99, 7 };# region該段與排序無關Console.WriteLine("排序前的陣列:");foreach (int item in arr){ Co
c#中冒泡排序算法描述
冒泡 con reg read 冒泡排序 ray ever reverse 位置 int temp = 0; int b = 0; int[] arr = { 23, 44, 66, 76, 98, 11
Java的輸入和輸出、if...else if...else判斷、Java中列印陣列、Java中陣列排序、檢視函式方法的原始碼、命令列引數
Java的輸入和輸出: 輸入: import java.util.Scanner Scanner s = new Scanner(System.in); //通過new Scanner(System.in)建立一個Scanner物件,控制檯會一直等待輸入,直到敲回車鍵
c#中陣列 list Arraylist
陣列: int [] a = new int[3]; 優點:存放相同型別的資料,陣列在記憶體中是連續儲存的,所以它的索引速度是非 常的快,而且賦值與修改元素也很簡單。 缺點:在陣列的兩個資料間插入資料很麻煩,還有我們在宣告陣列的時候,必須同時指明陣列的長度,陣列的長度過長,會
重新認識memset函式及c++中陣列的初始化賦值
下面就好好重新認識一下這個函式,自己寫了測試的程式碼,memset到底怎麼用呢? 先貼測試程式碼: #include<iostream> #include<cstdio> #include<algorithm> #include<string>
C++中陣列和vector的比較
一、陣列C++中陣列是一種內建的資料型別。陣列是存放型別相同的物件的容器,陣列的大小確定不變,不能隨意向陣列中增加元素。1、定義和初始化內建陣列(1)陣列的大小不變,(a[d],d為陣列的維度),陣列的維度必須是一個常量表達式。定義陣列的時,必須指定陣列的型別和大小。(2)初
C++中陣列作為形參時,實際傳的是指標
傳陣列時,實際上是建立了臨時的指標變數,指向傳進去的那個陣列。在函式中改變形引數組(臨時指標變數)的指向是可以的,只不過這樣做不會改變原來的陣列 //例子說明陣列做形參時,實際上是用一個臨時指標變數做形參,指向傳進去的陣列首地址。實際的陣列是常指標,不能改變它的值。 #i
C#中陣列、ArrayList和List三者的區別
在C#中陣列,ArrayList,List都能夠儲存一組物件,那麼這三者到底有什麼樣的區別呢。 陣列 陣列在C#中最早出現的。在記憶體中是連續儲存的,所以它的索引速度非常快,而且賦值與修改元素也很簡單。 //陣列 string[] s=new string[
C++中陣列的引用—防止陣列退化
在c語言中,陣列作為函式引數時,實際上陣列已經退化為指標使用。 下面這三種用法是等價的: int f1(int apples[]); int f1(int apples[10]); int f1(int* apples); 這樣一來,在f1中是無法知道陣列的大小的,開發者必須提前
C語言陣列排序小結
讓我們先定義一個整型陣列a[n],下面用五種方法對其從小到大排序。 (1)“冒泡法” 冒泡法大家都較熟悉。其原理為從a[0]開始,依次將其和後面的元素比較,若a[0]>a[i],則交換它們,一直比較到a[n]。同理對a[1],a[2],...a[n-1]處理,即完成排序
C++中陣列與MATLAB mxArray相互賦值
完成功能下:C++中產生一個256X256大小的陣列A;現在要在這個陣列顯示為一個灰度影象,然後把該數組裡面的每一個值乘2後返回給原陣列:C++程式如下: #include "stdafx.h" #include <windows.h> #include <
C++中陣列與STL中vector和array的比較
我的Github個人部落格 ----------------------------------- 阮一峰的網路日誌 ----------------------------------- 劉未鵬 | Mind Hacks ---------------------------
c#中陣列,ArrayList和List 三者的區別
在c#中,陣列在記憶體中是連續的,索引速度很快,賦值和修改也很簡單。string[] s=new string[2]; //賦值 s[0]="a"; s[1]="b"; //修改 s[1]="a1"; 但是陣列也有一些不足的地方,在資料的兩個資料
C++中陣列的引用作為函式引數
#include <iostream> using namespace std; /* void fun(char (&buff)[11])//括號裡必須有11才不報錯 { c
詳談C++中陣列作為函式引數
一、一個例子引發的思考 執行以下程式碼,請問輸出是什麼?例子來源於《劍指Offer》,我對書上例子做了修改,讓其可以執行。 #include<iostream> using namespace std; int GetSize(int da