利用C++的基本算法实现十个数排序

 更新时间:2013年10月21日 09:17:13   作者:  
以下是对利用C++的基本算法实现十个数排序的代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

冒泡排序法
原理:
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

冒泡排序算法的运作如下:
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3.针对所有的元素重复以上的步骤,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

示例代码:

复制代码 代码如下:

#include<iostream> 
using namespace std;
int main(){
 //按照升序排列
 int a[10]={15,13,2,3,6,5,88,-3,30,40};
 int i,j,t;
 for(i=0;i<9;i++){
  for(j=0;j<(9-i);j++){
   if(a[j]>a[j+1]){
    t=a[j+1];
    a[j+1]=a[j];
    a[j]=t;
   }
  }//通过每次循环,沉下去一个最大的数
 }//一种10个数,沉下去9个最大的数,就可以排序了
 for(i=0;i<10;i++){
  cout<<a[i]<<'\t';
 }
 cout<<endl;
 return 0;
}

分析:通过两两比较,第一次排序,会将最大的数88放到最后面a[9]中。。。。第九趟,a[1]=2,然后就排序完成

选择排序法
原理:
选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。

第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行交换。共需进行i-1趟比较,直到所有记录排序完成为止。例如:进行第i趟选择时,从当前候选记录中选出关键字最小的k号记录,并和第i个记录进行交换。

示例代码:

复制代码 代码如下:

#include<iostream> 
using namespace std;
int main(){
 //按照升序排列
 int a[10]={15,13,2,3,6,5,88,-3,30,40};
 int i,j,t,k=0;
 for(i=0;i<9;i++){
     k=i;
  for(j=i+1;j<10;j++){
      if(a[j]<a[k]){
       k=j;
      }     
  }
  t=a[k];
  a[k]=a[i];
  a[i]=t;
 }
 for(i=0;i<10;i++){
  cout<<a[i]<<'\t';
 }
 cout<<endl;
 return 0;
}

相关文章

  • Qt实现对Word网页的读取功能

    Qt实现对Word网页的读取功能

    文章介绍了几种在Qt中实现Word文档(.docx/.doc)读写功能的方法,包括基于QAxObject的COM接口调用、DOCX模板替换及跨平台解决方案,重点讨论了每种方法的实现细节、适用场景和性能优化技巧,需要的朋友可以参考下
    2025-12-12
  • C++11各种锁的具体使用

    C++11各种锁的具体使用

    本文主要介绍了C++11各种锁的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • C++ Boost Algorithm算法超详细精讲

    C++ Boost Algorithm算法超详细精讲

    Boost.Algorithm 提供了补充标准库算法的算法。与 Boost.Range 不同,Boost.Algorithm 没有引入新概念。 Boost.Algorithm 定义的算法类似于标准库中的算法
    2022-10-10
  • c++中const的使用详解

    c++中const的使用详解

    本篇文章是对c++中的const的应用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C C++ 题解LeetCode2360图中的最长环示例

    C C++ 题解LeetCode2360图中的最长环示例

    这篇文章主要为大家介绍了C C++ 题解LeetCode2360图中的最长环示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • C语言实现俄罗斯方块课程设计

    C语言实现俄罗斯方块课程设计

    这篇文章主要为大家详细介绍了C语言实现俄罗斯方块课程设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 深入理解Qt 初始项目代码

    深入理解Qt 初始项目代码

    本文解析了Qt项目创建后的主要文件,包括main.cpp、mywidget.h、mywidget.cpp、mywidget.ui和.pro,main.cpp这五个文件,具有一定的参考价值,感兴趣的可以了解一下
    2025-02-02
  • C++中类的转换函数你了解吗

    C++中类的转换函数你了解吗

    这篇文章主要为大家详细介绍了C++中类的转换函数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • 一篇文章带你入门C语言:函数

    一篇文章带你入门C语言:函数

    这篇文章主要介绍了C语言中函数的声明、定义及使用的入门教程,重点讲述了main函数的相关知识,需要的朋友可以参考下,希望能给你带来帮助
    2021-08-08
  • C++ 智能指针原理、使用与最佳实践指南

    C++ 智能指针原理、使用与最佳实践指南

    本文全面介绍了C++智能指针的使用,包括RAII思想、标准库实现、核心原理和实际问题解决,重点讲解了unique_ptr、shared_ptr和weak_ptr的使用场景、优缺点及特殊资源管理,感兴趣的朋友跟随小编一起看看吧
    2025-11-11

最新评论