最近学习编程时,感觉遇到了瓶颈,好多东西理解起来比较困难或者设计某个模块时,总感觉考虑的不够周全,总会遇到这样那样的困难,简单的弄快可以胜任,但稍微难一些的就感觉很吃力,所以现在打算开始重新学习算法相关的知识,刚刚把快速排序看了下,C#代码如下:
class Program { static void Main(string[] args) { int[] num = { 6,7,5,8,9,1,2,3}; SortUnit(num, 0, 7); for (int i = 0; i < num.Length;i++) { Console.WriteLine(num[i]); } Console.ReadKey(); } public static void SortUnit(int []array,int low,int hight) { if (low < hight) { int i=Sort(array,low,hight); SortUnit(array,low,i-1); SortUnit(array,i+1,hight); } } public static int Sort(int []array,int low,int hight) { int key = array[low]; while (low < hight) { while (hight > low && array[hight] >= key) { hight--; } if (hight > low) { array[low] = array[hight]; low++; } while (low < hight && array[low] <= key) { low++; } if (low < hight) { array[hight] = array[low]; hight--; } } array[hight] = key; return low; } }
<!---计划每天一排序算法-->
先洗洗睡了,明天再补充。