您的位置:首页 > 理论基础 > 数据结构算法

数据结构之冒泡排序与插入排序的思想与实现

2009-10-21 22:19 148 查看
经典的排序算法有很多种,有的时间复杂度也各不一样。《代码之美》一书的第三章《我从未编写过的最漂亮的代码》还对快速排序代码进行优化精讲,挺优美。这书不错。这次主要来自己动手实现这简单的冒泡排序与插入排序,加深熟练程度。

(一)冒泡排序

基本思想:依次比较相邻的两个数,将小数放在前面,大数放在后面。由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。主要通过两层循环来实现。

时间复杂度为:O(n∧2)

代码实现:

代码

1 /// <summary>
2 /// 选择排序
3 /// </summary>
4 /// <param name="array"></param>
5 private void SelectSort(int[] array)
6 {
7 int tmp;//暂存要交换的数据
8 int t;//交换数据的位置
9 for (int i = 0; i < arr.Length; i++)
10 {
11 t = i;
12 for (int j = i+1; j < arr.Length; j++)
13 {
14 if (arr[j] < arr[t])
15 {
16 t = j;
17 }
18 }
19 tmp = arr[i];
20 arr[i] = arr[t];
21 arr[t] = tmp;
22 }
23 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: