插入排序
2015-11-17 14:06
567 查看
static void Main(string[] args) { RArray arr = new RArray(10); Random r = new Random(100); for (int i = 0; i < 10; i++) { arr.Insert(r.Next(0, 100)); } arr.DisPlayElements(); Console.WriteLine("Bubble Sort....."); RArray list = BubbleSort(arr); list.DisPlayElements(); Console.WriteLine("Selection Sort....."); list = SelectionSort(arr); list.DisPlayElements(); Console.WriteLine("Insert Sort....."); list = InsertSort(arr); list.DisPlayElements(); Console.ReadKey(); }
static RArray InsertSort(RArray arr) { int inner, temp; for (int outer = 1; outer <= arr.upper; outer++) { temp = arr[outer]; inner = outer; while (inner > 0 && arr[inner - 1] >= temp) { arr[inner] = arr[inner - 1]; inner -= 1; } arr[inner] = temp; } return arr; }
插入排序算法有两层循环。 外层循环会逐个遍历数组元素, 而内层循环则会把外层循环所选
择的元素与该元素在数组内的下一个元素进行比较。 如果外层循环选择的元素小于内层循环
选择的元素, 那么数组元素都向右移以便为内层循环元素留出位置.
相关文章推荐
- 跟我一起写 Makefile
- 基于pjsip和webrtc封装sip客户端 技术选型
- jQuery Timers插件
- Android日志
- Nginx初探
- JAVA 实现 IMEI校验码算法
- ZOJ1203 Swordfish
- NSURL 基本方法 absoluteString
- php中strstr、strrchr、substr、stristr四个函数的区别总结
- 微博关注/QQ信息发送
- in 与 = 的区别
- 移动App与服务器安全通信
- Linux系统图形界面和命令行界面之间的切换
- 编程式使用IoC容器过程
- Session
- 键盘按键操作例子
- java中字符流的总结
- 2015,让人好焦虑!
- Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/html"
- Objective-C中常量重复定义的解决方案