标签:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleAppTest { class Program { //排序 static void SortNum(ref int[] arrInt) { //冒泡排序 //for (int i = arrInt.Length; i >= 0; i--) //{ // for (int j = 0; j < i - 1; j++) // { // if (arrInt[j] > arrInt[j + 1]) // { // exchange(ref arrInt[j], ref arrInt[j + 1]); // } // } // printArry(arrInt); //} //时间复杂度 O(n^2 ) //选择排序 // //int min; //for (int i = 0; i < arrInt.length - 1; i++) //{ // min = i; // for (int j = i + 1; j < arrInt.length; j++) // { // //寻找未排序中的最小值 // if (arrint[j] < arrInt[min]) // { // min = j; // } // } // if (i != min) // { // exchange(ref arrInt[i], ref arrInt[min]); // } // printArry(arrInt); //} //插入排序 //for (int i = 1; i < arrInt.Length; i++) //{ // int t = arrInt[i];//当前未排序的值 // int j = i; // while (j > 0 && arrInt[j - 1] > t) // { // arrInt[j] = arrInt[j - 1]; // j--; // } // arrInt[j] = t; // printArry(arrInt); //} //快速排序 //printArry(arrInt); //quickSort(ref arrInt, 0, 3); //printArry(arrInt); } static void quickSort(ref int[] arrInt, int left, int right) { if (left > right) { return; } int key = arrInt[left]; int i = left; int j = right; while (i != j) { //j从右向左开始查找 小于 key的值 while (arrInt[j] >= key && i < j) { j--; } //i从左向右查找 大于key的值 while (arrInt[i] <= key && i < j) { i++; } //找到后交换两个值 if(i < j) { exchange(ref arrInt[i], ref arrInt[j]); } } if (arrInt[i] == 0) { Console.WriteLine("aaaaaaaa"); } //找到中点的值 i== j 的时候 //交换关键位置 exchange(ref arrInt[left], ref arrInt[i]); //递归查找 key左边和右边的数组 quickSort(ref arrInt, left, i - 1); quickSort(ref arrInt, i + 1, right); } //引用传递 ref关键字 static void exchange(ref int a,ref int b) { int temp; temp = a; a = b; b = temp; } static void printArry(int[] arrInt) { foreach (var item in arrInt) { Console.Write(string.Format("{0} ", item)); } Console.WriteLine(""); } static void Main(string[] args) { Console.WriteLine("(1) 输入四个整数:"); int[] arrInt = new int[4]; for (int i = 0; i < arrInt.Length; i++) { arrInt[i] = int.Parse(Console.ReadLine()); Console.WriteLine("arrInt[{0}] = {1}",i, arrInt[i]); } SortNum(ref arrInt); Console.ReadKey(); } } }
标签:
原文地址:http://blog.csdn.net/qingzijin2010/article/details/51366001