码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡法排序_c++实现

时间:2016-01-09 16:56:09      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:

看完了郝斌老师的c语言视频,冒泡法排序,就试着写了。我觉得学习算法最重要的不是代码,而是它的原理。

代码:

 

  1 /**
  2  * Copyright (c) 1991 - 2016 Arvin Tang.
  3  * All rights reserved.
  4  *
  5  * 文件名称:郝斌C语言视频教程_163_冒泡排序
  6  * 简要描述:用冒泡法排序
  7  *
  8  * 当前版本:1.0
  9  * 作    者:
 10  * 完成日期:2016-1-9
 11  * 修订说明:
 12  *
 13  * 取代版本:
 14  * 作    者:
 15  * 完成日期:
 16  * 修订说明:
 17  */
 18 # include <iostream>
 19 
 20 using namespace std;
 21 
 22 void up_sort(int * p, int num);//冒泡升序排序函数
 23 void down_sort(int * p, int num);//冒泡降序排序函数
 24 
 25 int main(int argc, char const *argv[])
 26 {
 27     int num;
 28 
 29     int i;
 30 
 31     int op;//菜单选项
 32 
 33     cout<<"请输入你要排序的个数:"<<endl;
 34     cin>>num;
 35 
 36     //申请动态内存
 37     int * arrary = (int *)malloc(sizeof(int)*num);
 38     if(arrary == NULL)
 39     {
 40         cout<<"申请动态数组失败!"<<endl;
 41         exit(0);//exit(0)表示正常结束,exit(非0值表示错误返回)
 42     }
 43 
 44     cout<<"请输入你要排序的数字:"<<endl;
 45     for(i = 0; i < num; i++)
 46     {
 47         cin>>arrary[i];
 48     }
 49 
 50     cout<<"请选择排序方式对应的序号:\t1 升序(从小到大)\t2 降序(从大到小)"<<endl;
 51     cin>>op;
 52 
 53     switch(op)
 54     {
 55         case 1 :
 56         up_sort(arrary,num);
 57         cout<<"升序已排完:"<<endl;
 58         break;
 59         case 2 :
 60         down_sort(arrary,num);
 61         cout<<"降序已排完:"<<endl;
 62         break;
 63         default:
 64         break;
 65     }
 66 
 67     for(i = 0; i < num; i++)
 68     {
 69         cout<<arrary[i]<<"\t";
 70     }
 71 
 72     cout<<"\n";
 73 
 74     return 0;
 75 }
 76 
 77 /**
 78  * 函数名称:冒泡法_升序排序
 79  * 输入参数:一维数组地址,数组元素个数
 80  * 输出参数:
 81  * 返 回 值:
 82  */
 83 void up_sort(int * p, int num)
 84 {
 85     int i;
 86     int j;
 87     int temp;
 88 
 89     for(i = 0; i < num-1; i++)
 90     {
 91         for(j = 0; j < num-i-1; j++)
 92         {
 93             if(p[j] > p[j+1])
 94             {
 95                 temp = p[j+1];
 96                 p[j+1] = p[j];
 97                 p[j] = temp;
 98             }
 99         }
100     }
101 }
102 
103 /**
104  * 函数名称:冒泡法_降序排序
105  * 输入参数:一维数组地址,数组元素个数
106  * 输出参数:
107  * 返 回 值:
108  */
109 void down_sort(int * p, int num)
110 {
111     int i;
112     int j;
113     int temp;
114 
115     for(i = 0; i < num-1; i++)
116     {
117         for(j = 0; j < num-i-1; j++)
118         {
119             if(p[j] < p[j+1])
120             {
121                 temp = p[j+1];
122                 p[j+1] = p[j];
123                 p[j] = temp;
124             }
125         }
126     }
127 }

 

 

效果:

技术分享

冒泡法排序_c++实现

标签:

原文地址:http://www.cnblogs.com/arvintang/p/5116667.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!