(冒泡,选择,插入,归并,堆排)排序算法
来源:互联网 发布:mac图片查看器 编辑:程序博客网 时间:2024/06/15 17:57
冒泡排序:每次把数组中最大的数字沉入数组的最低处;时间复杂度是O(n^2);
#include<iostream>
using namespace std;
int main()
{
int a[]={2,1,4,6,9,0,55};
int n = sizeof(a)/sizeof(int);
for(int i =0;i<n;++i)//这个控制的是趟数
{
for(int j =0;j+i<n-1;++j)//这个控制的是次数
{
if(a[j]>a[j+1])
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(int i =0;i<n;++i)
{
printf("%d ",a[i]);
}
return 0;
}
快速排序:
快速排序的思想:
(1)选取一个基准元素(一般选取最开头或者最末尾)
(2)进行一趟排序,把记录分为俩个模块,左边这个记录是比都比基准元素小,右边这个基准元素都比大;
(3)基准元素就到了排好元素的位置;
(4)分别对这俩个模块用相同的方法递归排序,直到所有的数字有序;
#include<iostream>
using namespace std;
void swap(int & n,int &m)
{
int temp= n;
n = m;
m = temp;
}
int Partion(int a[],int low,int high)
{
int key = a[low];
while(low <high)
{
while(low < high && a[high] >= key)--high;
swap(a[low],a[high]);
while(low<high && a[low] <= key)++low;
swap(a[low],a[high]);
}
return low;
}
void QuickSort(int a[],int n,int m)
{
if(n<m)
{
int p = Partion(a,n,m);
QuickSort(a,n,p-1);
QuickSort(a,p+1,m);
}
}
int main()
{
int a[]={2,1,4,6,9,0,55};
int n = sizeof(a)/sizeof(int);
int low =0;
int high = n-1;
QuickSort(a,0,n-1);
for(int i =0;i<n;++i)
{
cout<<a[i]<<" ";
}
return 0;
}
插入排序:
1.直接插入排序
2.折半插入排序
3.希尔排序
void InsertSort(int a[],int left,int right)
{
int i,j;
for(i = left+1;i<right;++i)
{
if(a[i]<a[i-1])
{
int temp =a[i];
j = i-1;
do{
a[j+1]=a[j];
--j;
}while(a[j] >temp && j>=left);
a[j+1]= temp;
}
}
}
- (冒泡,选择,插入,归并,堆排)排序算法
- 排序算法:快排,插入,希尔,归并,堆,选择,冒泡
- 排序(快排,冒泡,堆排序,插入排序,归并排序,选择排序)算法Java实现
- 各种排序算法(冒泡、选择、快排、插入、希尔、堆排、归并、计数、基数)
- 常见排序算法总结与实现(冒泡、插入、选择、希尔、堆排序、归并、快排)
- 常见排序算法C++实现(冒泡,直接插入,希尔,堆,归并,简单选择,快排)
- python内排序算法(冒泡 插入 选择 堆 归并 快排)
- 八种排序算法(直接插入,希尔,直接选择,堆,冒泡,快排,归并,基数)
- 常用排序算法(冒泡、选择、归并、快排、插入)
- 八种常见排序算法:插入、冒泡、选择、希尔、归并、快排、堆排序、基数排序
- 排序算法 快排 堆排 选择 插入 希尔 归并
- 各类排序C++实现(冒泡,选择,插入,快排,归并,堆排)
- C++实现各种基础排序(冒泡、选择、快排、插入、堆排、希尔、归并)
- 学生成绩排序(直接插入,冒泡,快排,选择,堆排,2路归并)
- 链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
- 链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
- 链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
- 链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
- 从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式)
- echarts-组合图
- 请找出两个字符串顺序连续的字符。
- 学习mybatis 第一课
- Mysql数据库基础:安装-练习
- (冒泡,选择,插入,归并,堆排)排序算法
- sap 中功能模块参数后台表FUPARAREF
- php字符串截取的简单方法
- C++之实现大顶堆(1)---《那些奇怪的算法》
- 使用 Spring4 + CXF3 + WS-Security 开发 WebService
- iOS开发笔记-升级Xcode9和升级iOS11后踩坑记
- Python元类
- 常考sql
- MTP/MPO光纤跳线布线解决方案