排序算法笔记-冒泡算法 Bubblesort
来源:互联网 发布:java多线程实现高并发 编辑:程序博客网 时间:2024/05/21 07:13
最近在复习排序算法,随性写了一个冒泡算法的实现,而且增加了一点UI和健壮性的语句,还用到了万年不用的goto,也是饶有兴致。程序本身还有很多可以提升和精简的地方,比如if分支判断的结构。分享出来,供刚刚接触排序算法的人学习。以下代码可以直接贴入VS-控制台项目中运行。
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Bublesort{ class Program { static void Main(string[] args) { /* * 若文件的初始状态是正序的,一趟扫描即可完成排序。所需的关键字比较次数C和记录移动次数M均达到最小值:C=n-1,M=0。 * 最佳时间复杂度为O(0); * 若初始文件是反序的,需要进行n-1趟排序。每趟排序要进行i次关键字的比较(1≤i≤n-1),且每次比较都必须移动记录三次来达到交换记录位置。 * 在这种情况下,比较和移动次数均达到最大值:C=n(n-1)/2=O(n^2);M=3n(n-1)/2=O(n^2) * 故最坏时间复杂度、平均复杂度为O(n^2)。 */ start: Console.Write("请输入要排序的若干整数,用【空格】或【,】隔开,按回车结束(输入个数在100以内):\r\n"); string inputStr = Console.ReadLine(); inputStr = inputStr.Trim(); string[] strArr = new string[100]; if(!inputStr.Contains(',')&&!inputStr.Contains(' ')) { Console.Write("您没有使用规定的分隔符,按任意键后,程序将重新运行!"); Console.ReadKey(); Console.Clear(); goto start; } if (inputStr.Contains(',') && inputStr.Contains(' ')) { Console.Write("您使用的分隔符不一致,按任意键后,程序将重新运行!"); Console.ReadKey(); Console.Clear(); goto start; } if (inputStr.Contains(' ')) { strArr = inputStr.Split(' '); } if (inputStr.Contains(',')) { strArr = inputStr.Split(','); } int[] intArr = new int[100]; for (int i = 0; i < strArr.Length; i++) { try { intArr[i] = Convert.ToInt16(strArr[i]); } catch (Exception e) { Console.Write(e); Console.Write("\r\n\n请参照上述错误信息修改输入的数据,按任意键后,程序将重新运行!"); Console.ReadKey(); Console.Clear(); goto start; } } Console.Write("\r\n您输入的是:"); foreach (string temp in strArr) { Console.Write(temp + " "); } Console.Write("\r\n"); Console.ReadKey(); int arrLength = strArr.Length; for (int i = 0; i < strArr.Length; i++) for (int j = 0 ; j < strArr.Length-1-i; j++) { int temp; if (intArr[j] > intArr[j + 1]) { temp = intArr[j]; intArr[j] = intArr[j + 1]; intArr[j + 1] = temp; } } Console.Write("\r\n排序结果为:\r\n"); for (int i = 0; i < arrLength;i++ ) { Console.Write(intArr[i] + " "); } Console.ReadKey(); } }}
0 0
- 排序算法笔记-冒泡算法 Bubblesort
- java冒泡排序(冒泡)算法Bubblesort
- 排序算法 之 冒泡排序 BubbleSort
- BubbleSort 优化后的冒泡排序算法
- BubbleSort(冒泡算法)
- 【排序算法】直接选择排序(SelectSort)与冒泡排序(BubbleSort)
- (BubbleSort)冒泡排序与(BinarySearch)二分法查找算法(java)
- 【算法导论-006】冒泡排序及其优化(BubbleSort)
- 数据算法之冒泡排序(bubbleSort)的Java实现
- 算法笔记--冒泡排序
- 冒泡排序算法笔记
- 算法分析之排序:交换排序之一——冒泡排序(BubbleSort)
- C++、C#、java算法学习日记01---冒泡排序(BubbleSort)
- 冒泡排序 冒泡排序:BubbleSort
- 算法学习笔记 - 冒泡排序
- Java BubbleSort(冒泡排序)
- 冒泡排序[BubbleSort]
- 冒泡排序 BubbleSort
- Struts2学习笔记——ParamInput(参数的输入)
- H3C telnet配置要点
- 9.3.2 用 IDisposable 接口清理资源
- Linux top命令监控CPU内存详解
- iOS 在viewController中监听Home键触发以及重新进入界面的方法
- 排序算法笔记-冒泡算法 Bubblesort
- Transformer入门教程(九)(TR0787)The locking of cube
- Spark的任务调度
- UML类图之间的关系
- Median of Two Sorted Arrays -- leetcode
- Mahout推荐系统构建
- 第十六周项目一—数组排序(选择法)
- 工商总局抽检电商 天猫1号店等仍存售假
- 徐家俊 美文