冒泡排序
using System; namespace BubbleSorter { public class BubbleSorter { public void Sort(int [] list) { int i,j,temp; bool done=false; j=1; while((j<list.Length)&&(!done)) { done=true; for(i=0;i<list.Length-j;i++) { if(list[i]>list[i+1]) { done=false; temp=list[i]; list[i]=list[i+1]; list[i+1]=temp; } } j++; } } } public class MainClass { public static void Main() { int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47}; BubbleSorter sh=new BubbleSorter(); sh.Sort(iArrary); for(int m=0;m<iArrary.Length;m++) { Console.Write("{0} ",iArrary[m]); } Console.WriteLine(); } } }
选择排序
using System; namespace SelectionSorter { public class SelectionSorter { private int min; public void Sort(int[] list) { for (int i = 0; i < list.Length - 1; i++) { min = i; for (int j = i + 1; j < list.Length; j++) { if (list[j] < list[min]) { min = j; } } int t = list[min]; list[min] = list[i]; list[i] = t; } } } public class MainClass { public static void Main() { int[] iArrary = new int[] { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 }; SelectionSorter ss = new SelectionSorter(); ss.Sort(iArrary); for (int m = 0; m < iArrary.Length; m++) { Console.Write("{0} ", iArrary[m]); } Console.WriteLine(); } } }
插入排序
using System; namespace InsertionSorter { public class InsertionSorter { public void Sort(int[] list) { for (int i = 1; i < list.Length; i++) { int t = list[i]; int j = i; while ((j > 0) && (list[j - 1] > t)) { list[j] = list[j - 1]; --j; } list[j] = t; } } } public class MainClass { public static void Main() { int[] iArrary = new int[] { 1, 13, 3, 6, 10, 55, 98, 2, 87, 12, 34, 75, 33, 47 }; InsertionSorter ii = new InsertionSorter(); ii.Sort(iArrary); for (int m = 0; m < iArrary.Length; m++) { Console.Write("{0}", iArrary[m]); } Console.WriteLine(); } } }
希尔排序
希尔排序是将组分段,进行插入排序.
using System; namespace ShellSorter { public class ShellSorter { public void Sort(int[] list) { int inc; for (inc = 1; inc <= list.Length / 9; inc = 3 * inc + 1) ; for (; inc > 0; inc /= 3) { for (int i = inc + 1; i <= list.Length; i += inc) { int t = list[i - 1]; int j = i; while ((j > inc) && (list[j - inc - 1] > t)) { list[j - 1] = list[j - inc - 1]; j -= inc; } list[j - 1] = t; } } } } public class MainClass { public static void Main() { int[] iArrary = new int[] { 1, 5, 13, 6, 10, 55, 99, 2, 87, 12, 34, 75, 33, 47 }; ShellSorter sh = new ShellSorter(); sh.Sort(iArrary); for (int m = 0; m < iArrary.Length; m++) { Console.Write("{0} ", iArrary[m]); } Console.WriteLine(); } } }