日期:2014-05-18 浏览次数:21097 次
int[] array = new int[5] { 1, 4, 2, 5, 3 }; for(int i=1;i< arr.Length;i++) { for(int j=(arr.Length-1);j>=i;j--) { if(arr[j+1]<arr[j]) { int temp= arr[j]; arr[j+1]=arr[j]; arr[j] = temp; } } }
------解决方案--------------------
/// <summary> /// 基本思路:两两比较 /// 排序,按升序排列 /// </summary> /// <param name="str"></param> public static void GetSort(int[] str) { int temp = 0; Console.Write("原数组是:"); for (int i = 0; i < str.Length; i++) { Console.Write(str[i]+"\t"); } Console.WriteLine(); for (int i = 0; i <str.Length; i++) { Console.WriteLine("第{0}轮的排序结果是:",i+1); for (int j = 0; j < str.Length-1-i; j++) //两两比较 没一轮比较都会依次递减比表的次数 { if (str[j] > str[j + 1])//比较相邻的两个数 { temp = str[j]; //把较大的值放入到临时变量里 str[j] = str[j + 1]; //因为是升序 数组第一位放较小值 str[j + 1] = temp; //因为是升序 数组第二位放较大值(即temp) } //打印每次比较的结果 for (int k = 0; k < str.Length; k++) { Console.Write(str[k] + "\t"); } Console.WriteLine(); } Console.WriteLine(); } } /// <summary> /// 降序,按降序排列 /// </summary> /// <param name="str"></param> public static void GetSort1(int[] str) { int temp = 0; for (int i = 0; i < str.Length; i++) //外循环5次 { for (int j = 0; j < str.Length - 1 - i; j++) { if (str[j] < str[j + 1]) //如果前一个小于后一个 { temp = str[j]; //第一个值和它的下一个值比较 把小的就放入到临时变量里 str[j] = str[j + 1]; //把大的这个值放入到它后面 str[j + 1] = temp; //把小的这个值放入到第一位 } //打印每次比较的结果 for (int k = 0; k < str.Length; k++) { Console.Write(str[k] + "\t"); } Console.WriteLine(); } Console.WriteLine(); } }
------解决方案--------------------
http://topic.csdn.net/u/20090113/11/F371C1F2-9330-4B61-B845-00177E6AE953.html
楼主看看这个吧。。。
------解决方案--------------------
/// <summary> /// 基本思路:两两比较 /// 排序,按升序排列 /// </summary> /// <param name="str"></param> public static void GetSort(int[] str) { int temp = 0; Console.Write("原数组是:"); for (int i = 0; i < str.Length; i++) { Console.Write(str[i]+"\t"); } Console.WriteLine(); for (int i = 0; i <str.Length; i++) { Console.WriteLine("第{0}轮的排序结果是:",i+1); for (int j = 0; j < str.Length-1-i; j++) //两两比较 没一轮比较都会依次递减比表的次数 { if (str[j] > str[j + 1])//比较相邻的两个数 { temp = str[j]; //把较大的值放入到临时变量里 str[j] = str[j + 1]; //因为是升序 数组第一位放较小值 str[j + 1] = temp; //因为是升序 数组第二位放较大值(即temp) } //打印每次比较的结果 for (int k = 0; k < str.Length; k++) { Console.Write(str[k] + "\t"); } Console.WriteLine(); } Console.WriteLine(); } } /// <summary> /// 降序,按降序排列 /// </summary> /// <param name="str"></param> public static void GetSort1(int[] str) { int temp = 0; for (int i = 0; i < str.Length; i++) //外循环5次 { for (int j = 0; j < str.Length - 1 - i; j++) { if (str[j] < str[j + 1]) //如果前一个小于后一个 { temp = str[j]; //第一个值和它的下一个值比较 把小的就放入到临时变量里 str[j] = str[j + 1]; //把大的这个值放入到它后面 str[j + 1] = t