using System;
class ArraySort
{
private long[] a; //ref to array a
private int nElems; //number of data items
public ArraySort(int max) //constructor
{
a = new long[max]; //create the array
nElems = 0; //no items yet
}
public void Insert(long value) //put element into array
{
a[nElems] = value; //insert it
nElems++; //increment size
}
public void Display() // display array contents
{
for (int i = 0; i < nElems; i++) //for each element
Console.Write("{0} ", a[i]); //display it
Console.WriteLine();
}
//冒泡排序
public void BubbleSort()
{
int outer,inner;
for (outer = nElems - 1; outer > 1; outer--) // outer loop(backward)
{
for (inner = 0; inner < outer; inner++) // inner loop(forward)
{
if (a[inner] > a[inner + 1]) // out of order?
Swap(inner, inner+1); //swap them
}
}
} //end bubblesort
//选择排序
public void SelectionSort()
{
int outer, inner, min;
for (outer = 0; outer < nElems - 1; outer++) //outer loop
{
min = outer; //minimun
for (inner = outer + 1; inner < nElems; inner++ ) //inner loop
{
if (a[inner] < a[min]) //if min greater
min = inner; //we have a new min
Swap(outer, min); //swap them
}
}
}
//插入排序
public void InsertSort()
{
int inner, outer;
for(outer =1; outer<nElems; outer++) // out is dividing line
{
long temp=a[outer]; //remove marked item
inner = outer; //start shifts at out
while (inner > 0 && a[inner - 1] >= temp) //until one is smaller
{
a[inner] = a[inner-1]; // shift item right
--inner; // go left one position
}
a[inner] = temp; //insert marked item
} //end for
} //end InsertionSort();
public void Swap(int one, int two)
{
long temp;
temp = a[one];
a[one] = a[two];
a[two] = temp;
}
} //end class ArrayBubble
class ArraySortApp
{
static void Main(string[] args)
{
int MaxSize = 100;
ArraySort arr;
arr = new ArraySort(MaxSize);
arr.Insert(77);
arr.Insert(99);
arr.Insert(44);
arr.Insert(55);
arr.Insert(22);
arr.Insert(88);
arr.Insert(11);
arr.Insert(00);
arr.Insert(66);
arr.Insert(33);
arr.Display(); //display items
//arr.BubbleSort(); //bubble sort them
//arr.SelectionSort(); // selection-sort them
arr.InsertSort(); //insertion-sort them
arr.Display(); //display them again
Console.ReadLine();
} // end main
} // end BubbleSortApp
几种简单排序(C#)
最新推荐文章于 2022-09-20 19:00:00 发布