实验五

来源:互联网 发布:sql 删除所有表 编辑:程序博客网 时间:2024/04/29 13:38

实验五  排序

 

院 、系

 海师计教系

 班级

计本二班

  

 200624101101

 姓名

 杨振平

完成日期

 2007-12-19  

源程序名

123.cpp

 

一、题目

定义一个无序序列,使用插入排序、希尔排序、快速排序及堆排序等各种内部排序方法使之有序。

二、需求分析      

本程序在Windows环境下用用Visual C++编写,完成程序内部排序算法的实现:

三、概要设计

主函数中调用

Bubble_Sort();//起泡排序

              InsertSort();//直接插入排序

              SelectSort();//简单选择排序

              PrintfQuickSort();//快速排序

              ShellSort();//希尔排序

              HeapSort();//堆排序

6种排序算法函数

四、测试结果

要排序的随机数组是:

  106   44   82   98   43  198    3   70   84  170

  124    3   87  148  146   86   23   58   18  138

  114   15   55  172  113  195   24  192  154  133

   52  109  146   58   43  101  192   24   24  112

  138  102   70   40  147  186   91    3  192   92

   28  126   33   20    2  171  162   10  111  101

  172  183  174  186  146    3  189    2  122  142

  186  122  114  131  191   73  123  103  113   65

   41  148   66  142  126  123   60  144   31  150

   70   36    1   77   61  141  146  186   34  176

 

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

1

*******起泡排序*******

排序结果为:

    1    2    2    3    3    3    3   10   15   18

   20   23   24   24   24   28   31   33   34   36

   40   41   43   43   44   52   55   58   58   60

   61   65   66   70   70   70   73   77   82   84

   86   87   91   92   98  101  101  102  103  106

  109  111  112  113  113  114  114  122  122  123

  123  124  126  126  131  133  138  138  141  142

  142  144  146  146  146  146  147  148  148  150

  154  162  170  171  172  172  174  176  183  186

  186  186  186  189  191  192  192  192  195  198

 

比较次数为:4950

移动次数为:6927

 

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

2

*******直接插入排序*******

排序结果为:

    1    2    2    3    3    3    3   10   15   18

   20   23   24   24   24   28   31   33   34   36

   40   41   43   43   44   52   55   58   58   60

   61   65   66   70   70   70   73   77   82   84

   86   87   91   92   98  101  101  102  103  106

  109  111  112  113  113  114  114  122  122  123

  123  124  126  126  131  133  138  138  141  142

  142  144  146  146  146  146  147  148  148  150

  154  162  170  171  172  172  174  176  183  186

  186  186  186  189  191  192  192  192  195  198

 

比较次数为:2403

移动次数为:2505

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

3

*******简单选择排序*******

排序结果为:

    1    2    2    3    3    3    3   10   15   18

   20   23   24   24   24   28   31   33   34   36

   40   41   43   43   44   52   55   58   58   60

   61   65   66   70   70   70   73   77   82   84

   86   87   91   92   98  101  101  102  103  106

  109  111  112  113  113  114  114  122  122  123

  123  124  126  126  131  133  138  138  141  142

  142  144  146  146  146  146  147  148  148  150

  154  162  170  171  172  172  174  176  183  186

  186  186  186  189  191  192  192  192  195  198

 

比较次数为:4950

移动次数为:285

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

4

*******快速排序*******

排序结果为:

    1    2    2    3    3    3    3   10   15   18

   20   23   24   24   24   28   31   33   34   36

   40   41   43   43   44   52   55   58   58   60

   61   65   66   70   70   70   73   77   82   84

   86   87   91   92   98  101  101  102  103  106

  109  111  112  113  113  114  114  122  122  123

  123  124  126  126  131  133  138  138  141  142

  142  144  146  146  146  146  147  148  148  150

  154  162  170  171  172  172  174  176  183  186

  186  186  186  189  191  192  192  192  195  198

 

比较次数为:908

移动次数为:460

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

5

*******希尔排序*******

排序结果为:

    1    2    2    3    3    3    3   10   15   18

   20   23   24   24   24   28   31   33   34   36

   40   41   43   43   44   52   55   58   58   60

   61   65   66   70   70   70   73   77   82   84

   86   87   91   92   98  101  101  102  103  106

  109  111  112  113  113  114  114  122  122  123

  123  124  126  126  131  133  138  138  141  142

  142  144  146  146  146  146  147  148  148  150

  154  162  170  171  172  172  174  176  183  186

  186  186  186  189  191  192  192  192  195  198

 

比较次数为:1137

移动次数为:884

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

6

*******堆排序*******

排序结果为:

    1    2    2    3    3    3    3   10   15   18

   20   23   24   24   24   28   31   33   34   36

   40   41   43   43   44   52   55   58   58   60

   61   65   66   70   70   70   73   77   82   84

   86   87   91   92   98  101  101  102  103  106

  109  111  112  113  113  114  114  122  122  123

  123  124  126  126  131  133  138  138  141  142

  142  144  146  146  146  146  147  148  148  150

  154  162  170  171  172  172  174  176  183  186

  186  186  186  189  191  192  192  192  195  198

 

比较次数为:939

移动次数为:1170

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

7

Press any key to continue

五、调试分析

通过不断的加进函数调试

加深并实现算法的思想

从程序的结果可以清晰看出

对于不同的序列

各种算法的比较和移动次数

原创粉丝点击