c++ 排序 冒泡 插入 选择 快速
//冒泡
#include <iostream>
using namespace std; void bubbleSort(int* list,int index)
{
for(int i=index;i>;i--) //index 最大的那个索引
{
for(int j=;j<i;j++)
{
if(list[j]>list[j+])
{
int temp;
temp=list[j];
list[j]=list[j+];
list[j+]=temp;
}
}
}
} void main()
{
int list[]={,,,,,,,,}; for(int i=;i<;i++)
cout<<list[i]<<" | ";
cout<<endl; bubbleSort(list,);//index:= 9-1 for(int i=;i<;i++)
cout<<list[i]<<" | ";
} //插入排序法
#include <iostream>
using namespace std; void insertSort(int* list,int index)
{
//在排序之前我们需要搞清一个思路,新插入一个数据的时候,排序过后的数组都是
//从小到大排列好的,所以我们需要从后往前查找,直到找到比我们要插入的数字还小的
//值。这个时候我们需要一个变量j作为标识 //从1开始
for(int i=;i<=index;i++) //index 最大的那个索引
{
int insertNode=list[i];
int j;
for(j=i-;j>=;j--)
{
if(insertNode<list[j])
list[j+]=list[j];
else
break; //因为前面的已经排序好,所以找到位置后 就可以退出了
}
list[j+]=insertNode;
} } void main()
{
int list[]={,,,,,,,,}; for(int i=;i<;i++)
cout<<list[i]<<" | ";
cout<<endl; insertSort(list,);//index:= 9-1 for(int i=;i<;i++)
cout<<list[i]<<" | ";
} //选择排序法
#include <iostream>
using namespace std; void selectSort(int* list,int index)
{
for(int i=;i<=index;i++) //index 最大的那个索引
{
int minValue=list[i];
int minIndex=i; for(int j=i;j<=index;j++)
{
if(minValue>list[j])
{
minValue=list[j];
minIndex=j;
}
} int temp;
temp=list[i];
list[i]=list[minIndex];
list[minIndex]=temp;
} } void main()
{
int list[]={,,,,,,,,}; for(int i=;i<;i++)
cout<<list[i]<<" | ";
cout<<endl; selectSort(list,);//index:= 9-1 for(int i=;i<;i++)
cout<<list[i]<<" | ";
} //快速排序法
#include <iostream>
using namespace std; int Partition(int a[], int low, int high)
{
int x = a[high];//将输入数组的最后一个数作为主元,用它来对数组进行划分
int i = low - ;//i是最后一个小于主元的数的下标
for (int j = low; j < high; j++)//遍历下标由low到high-1的数
{
if (a[j] < x)//如果数小于主元的话就将i向前挪动一个位置,并且交换j和i所分别指向的数
{
int temp;
i++;
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
//经历上面的循环之后下标为从low到i(包括i)的数就均为小于x的数了,现在将主元和i+1位置上面的数进行交换
a[high] = a[i + ];
a[i + ] = x;
return i + ;
} void QuickSort(int a[], int low, int high)
{
if (low < high)
{
int q = Partition(a, low, high);
QuickSort(a, low, q - );
QuickSort(a, q + , high);
}
} void main(){ int arry[] = {,,,,,,,,}; for (int i = ; i < ; i++)
{
cout << arry[i] <<" | ";
} cout<<endl;
QuickSort(arry, , );
for (int i = ; i < ; i++)
{
cout << arry[i] <<" | ";
}
}
c++ 排序 冒泡 插入 选择 快速的更多相关文章
- 《java数据结构与算法》系列之“简单排序"-冒泡,选择,插入
好几天又没写,因为这几天很闲,平时忙的时候自己再累都不会睡着,但是呢这没事了,照理说应该是不瞌睡了,结果还睡着了. 所以说,人很贱.也验证了一句话,没有目标的人其实最无聊.人一定要有自己的工作,这工作 ...
- Java数据结构和算法(三)--三大排序--冒泡、选择、插入排序
三大排序在我们刚开始学习编程的时候就接触过,也是刚开始工作笔试会遇到的,后续也会学习希尔.快速排序,这里顺便复习一下 冒泡排序: 步骤: 1.从首位开始,比较首位和右边的索引 2.如果当前位置比右边的 ...
- java面试准备之基础排序——冒泡与选择排序
选择排序: [java] public void select(int[] arr){ for(int i=0;i<arr.length;i++){ ...
- php六种基础算法:冒泡,选择,插入,快速,归并和希尔排序法
$arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序法 * 思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来. * 比 ...
- 排序算法练习--JAVA(:内部排序:插入、选择、冒泡、快速排序)
排序算法是数据结构中的经典算法知识点,也是笔试面试中经常考察的问题,平常学的不扎实笔试时候容易出洋相,回来恶补,尤其是碰到递归很可能被问到怎么用非递归实现... 内部排序: 插入排序:直接插入排序 选 ...
- Java四种排序:冒泡,选择,插入,二分(折半插入)
四种排序:冒泡,选择,插入,二分(折半插入) public class Test{ // public static void main(String[] args) { // Test t=new ...
- python排序算法实现(冒泡、选择、插入)
python排序算法实现(冒泡.选择.插入) python 从小到大排序 1.冒泡排序: O(n2) s=[3,4,2,5,1,9] #count = 0 for i in range(len(s)) ...
- python 数据结构与算法之排序(冒泡,选择,插入)
目录 数据结构与算法之排序(冒泡,选择,插入) 为什么学习数据结构与算法: 数据结构与算法: 算法: 数据结构 冒泡排序法 选择排序法 插入排序法 数据结构与算法之排序(冒泡,选择,插入) 为什么学习 ...
- 左神算法第一节课:复杂度、排序(冒泡、选择、插入、归并)、小和问题和逆序对问题、对数器和递归(Master公式)
第一节课 复杂度 排序(冒泡.选择.插入.归并) 小和问题和逆序对问题 对数器 递归 1. 复杂度 认识时间复杂度常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数 ...
随机推荐
- python爬虫破解带有RSA.js的RSA加密数据的反爬机制
前言 同上一篇的aes加密一样,也是偶然发现这个rsa加密的,目标网站我就不说了,保密. 当我发现这个网站是ajax加载时: 我已经习以为常,正在进行爬取时,发现返回为空,我开始用findler抓包, ...
- 065、Java面向对象之定义一个Book类,在主类中使用Book类
01.代码如下: package TIANPAN; class Book { // 定义一个新的类 String title; // 书的名字 double price; // 书的价格 public ...
- python手动实现深拷贝
深拷贝是将对象全拷贝,包括嵌套对象 def deepcopy(cls): if isinstance(cls, dict): dct = {} for k, v in cls.items(): dct ...
- POJ 2287 田忌赛马
Tian Ji -- The Horse Racing Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 17699 Acc ...
- Golang函数-函数的基本概念
Golang函数-函数的基本概念 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数的概述 1>.函数定义语法格式 Go语言函数定义格式如下: func 函数名( 函数参 ...
- Kafka--windows下简单使用kafka命令
参考 https://www.cnblogs.com/cici20166/p/9426417.html 启动zookeeper 只需要保证有可用的zookeeper,可以使用kafka内置的,也可以自 ...
- 一百零一、SAP中ALV事件之十四,让ALV表格自动排序
如果我们需要对下图的凭证日期和物料进行排序,需要怎么做呢 一.我们来到ALV的定义 二.我们查看IT_SORT的定义,双击点进去 三.查看SLIS_T_SORTINFO_ALV定义 四.代码如下,定义 ...
- 六十七、SAP中内表插入的三种方法之一,APPEND的使用
一.如果内表是一个普通的内表,只用于存储数据不用来排序,那么优先选择APPEND插入 二.我们运行程序,并把工作区和内表加入到断点变量,如图所示,1X22的意思如图 三.我们点击ITAB1,来看内表数 ...
- php知识结构
PHP的运行环境 连环境都搞不起来,就是你有多么喜欢PHP,那也是白搭,开始我们大多会使用集成环境软件例如xampp,wamp.随着知识的增加慢慢要学会自己搭建运行环境,例如 Linux(Ubuntu ...
- Essay写作观点的打造
很多留学生在Essay写作过程中经常出现的问题就是缺乏对于已有知识的新的理解,只是单纯在做文献综述(literature review)而已.要怎么样才能够体现自己的理解和自己的观点,便是今天我们讲解 ...