本文共 1238 字,大约阅读时间需要 4 分钟。
核心思想是相邻的两个数做比较
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 缺点是重复比较耗费性能static void Main(string[] args) { //定义数组 int[] sum = { 8, 5, 6, 7, 9, 0, 2, 1, 4, 3 }; //外循环 要比较的次数 for (int i = 0; i < sum.Length - 1; i++) { //内循环相邻俩个数值作比较比较,一趟需要比较sum.leng-i-1次可以得出最大值,一趟比较下来发现大的做交换 for (int j = 0; j < sum.Length - i - 1; j++) { //发现大的就交换 升序比较 if (sum[j] > sum[j + 1]) { int temp = sum[j]; sum[j] = sum[j + 1]; sum[j + 1] = temp; } } } foreach (int temp in sum) { Console.Write(temp + " "); } Console.ReadKey(); }
改进后的算法
int[] sum = { 15, 8, 10, 6, 5 }; bool swaped = true; for (int i = 0; isum[j+1]) { int temp = sum[j]; sum[j] = sum[j + 1]; sum[j + 1] = temp; swaped = true; } } }
转载地址:http://sbrxo.baihongyu.com/