Csharp/CSharp Tutorial/Data Structure/Array Sort — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 12:15, 26 мая 2010
Содержание
Display the contents of the sorted array
using System;
using System.Collections;
class MainClass
{
public static void Main(string[] args)
{
// Create a new array and populate it.
int[] array = { 4, 2, 9, 3 };
// Sort the array.
Array.Sort(array);
foreach (int i in array) {
Console.WriteLine(i);
}
}
}
2 3 4 9
Implementing IComparable and sort by Array.Sort
using System;
public class Employee: IComparable{
public Employee(string name, int id)
{
this.name = name;
this.id = id;
}
int IComparable.rupareTo(object obj)
{
Employee emp2 = (Employee) obj;
if (this.id > emp2.id)
return(1);
if (this.id < emp2.id)
return(-1);
else
return(0);
}
public override string ToString()
{
return(String.Format("{0}:{1}", name, id));
}
string name;
int id;
}
class MainClass
{
public static void Main()
{
Employee[] arr = new Employee[4];
arr[0] = new Employee("A", 1);
arr[1] = new Employee("B", 2);
arr[2] = new Employee("C", 4);
arr[3] = new Employee("D", 3);
Array.Sort(arr);
foreach (Employee emp in arr)
Console.WriteLine("Employee: {0}", emp);
Console.WriteLine("Find employee id 2 in the list");
Employee employeeToFind = new Employee(null, 2);
int index = Array.BinarySearch(arr, employeeToFind);
if (index != -1)
Console.WriteLine("Found: {0}", arr[index]);
}
}
Employee: A:1 Employee: B:2 Employee: D:3 Employee: C:4 Find employee id 2 in the list Found: B:2
Sort an array
using System;
class MainClass {
public static void Main() {
int[] nums = { 5, 4, 6, 3, 14, 9, 8, 17, 1, 24, -1, 0 };
Console.Write("Original order: ");
foreach(int i in nums)
Console.Write(i + " ");
Console.WriteLine();
Array.Sort(nums);
Console.Write("Sorted order: ");
foreach(int i in nums)
Console.Write(i + " ");
Console.WriteLine();
}
}
Original order: 5 4 6 3 14 9 8 17 1 24 -1 0 Sorted order: -1 0 1 3 4 5 6 8 9 14 17 24
Sort an array and search for a value
using System;
class MainClass {
public static void Main() {
int[] nums = { 5, 4, 6, 3, 14, 9, 8, 17, 1, 24, -1, 0 };
Array.Sort(nums);
// Search for 14.
int idx = Array.BinarySearch(nums, 14);
Console.WriteLine("Index of 14 is " + idx);
}
}
Index of 14 is 9
Use Array.Sort to sort object array
using System;
using System.Collections.Generic;
using System.Text;
class MyClass : IComparable
{
public int TheValue;
public int CompareTo(object obj)
{
MyClass mc = (MyClass)obj;
if (this.TheValue < mc.TheValue)
return -1;
if (this.TheValue > mc.TheValue)
return 1;
return 0;
}
}
class MainClass
{
static void Main()
{
MyClass[] objectArray = new MyClass[5];
for (int i = 0; i < 5; i++)
{
objectArray[i] = new MyClass();
objectArray[i].TheValue = 100 - i;
}
foreach (MyClass i in objectArray)
Console.Write("{0} ", i.TheValue);
Array.Sort(objectArray);
foreach (MyClass i in objectArray)
Console.Write("{0} ", i.TheValue);
}
}
100 99 98 97 96 96 97 98 99 100
Use System.Array.Sort() to sort an int array
using System;
class MainClass
{
public static void Main()
{
int[] arr = {5, 1, 10, 33, 100, 4};
Array.Sort(arr);
foreach (int v in arr)
Console.WriteLine("Element: {0}", v);
}
}
Element: 1 Element: 4 Element: 5 Element: 10 Element: 33 Element: 100
Use the Sort() method to sort the elements in an int array
using System;
class MainClass
{
public static void Main()
{
int[] intArray = {5, 2, 3, 1, 6, 9, 7, 14, 25};
Array.Sort(intArray);
Console.WriteLine("Sorted intArray:");
for (int i = 0; i < intArray.Length; i++)
{
Console.WriteLine("intArray[" + i + "] = " +
intArray[i]);
}
}
}
Sorted intArray: intArray[0] = 1 intArray[1] = 2 intArray[2] = 3 intArray[3] = 5 intArray[4] = 6 intArray[5] = 7 intArray[6] = 9 intArray[7] = 14 intArray[8] = 25