C++冒泡、插入、选择、希尔、快速排序函数
来源:互联网 发布:mysql 设置编码 utf8 编辑:程序博客网 时间:2024/06/10 18:40
#include <iostream>
using namespace std;
//输出数组
void show(int a[],int n)
{
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
cout<<"/n";
}
//交换元素位置:
void swap(int *a,int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
//冒泡排序
void maopao(int a[],int n)
{
int i , j ;
for(i=1; i <n ; i++)
{
for(j=0;j<n-1;j++)
{
if(a[i]>a[j])
{
swap(&a[i],&a[j]);
}
}
}
}
//插入排序:
void InsertionSort(int a[],int n)
{
int i , j ,temp;
for(i=1;i<n;i++)
{
j=i;
temp=a[i];
while(j>0 && temp<a[j-1])
{
a[j]=a[j-1];
j--;
}
a[j]=temp;
}
}
// 选择排序:
void SelectionSort(int a[],int n)
{
int i , j ,max;
for (i = 0; i < n-1; i++)
{
max = i;
for (j = i+1; j < n; j++)
{
if (a[j] >a[max])
{
swap(&a[i],&a[j]);
}
}
}
}
//希尔排序:
void xier(int a[],int n)
{
int i , j , gap=n,flag;
while(gap>1)
{
gap=gap/2;
do{
flag=0;
for(i=0;i<=n-gap;i++)
{
j=i+gap;
if(a[i]<a[j])
{
swap(&a[i],&a[j]);
flag=1;
}
}
}while(!flag);
}
}
//快速排序:
void quicksort(int a[] ,int s , int t)
{
int i , j , temp;
if(s<t)
{
i=s;
j=t+1;
while(1)
{
do i++;
while(!(a[s]>=a[i]||i==t));
do j--;
while(!(a[s]<=a[j])||j==s);
if(i<j)
swap(&a[i],&a[j]);
else
break;
}
swap(&a[s],&a[j]);
quicksort(a,s,j-1);
quicksort(a,j+1,t);
}
}
void main()
{
int a[10]={3,2,9,8,6,7,5,1,4};
cout<<"冒泡排序"<<endl;
maopao(a,9);
show(a,9);
cout<<"插入排序"<<endl;
InsertionSort(a,9);
show(a,9);
cout<<"选择排序"<<endl;
SelectionSort(a,9);
show(a,9);
//xier(a,9);
//show(a,9);
cout<<"快速排序"<<endl;
quicksort(a,0,8);
show(a,9);
}
- C++冒泡、插入、选择、希尔、快速排序函数
- C 各种排序(选择/冒泡/快速/插入/希尔/归并/堆)
- java插入,希尔,快速,冒泡,选择排序
- 插入 | 希尔 | 冒泡 | 快速 | 选择 | 归并排序
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- C语言常用排序——直接插入,冒泡,选择,希尔,快速,堆排序
- 冒泡--选择--插入--希尔排序
- 冒泡、选择、插入、归并、希尔、快速排序效率比较代码
- 字符串排序算法(冒泡、选择、插入、希尔、快速)
- 排序算法-冒泡、插入、归并、希尔、快速、选择--代码总结
- 冒泡、选择、插入、归并、希尔、快速排序效率比较代码 .
- 数据结构排序,冒泡,快速,直接选择,直接插入,希尔
- 数组排序(插入、选择、希尔、堆、归并、快速、冒泡)
- 数据结构七:选择,冒泡,插入,希尔,快速排序实现
- 22.冒泡,选择,插入,希尔,快速,堆排序
- 常用排序算法--冒泡,插入,选择,希尔,归并,快速
- 冒泡、选择、快速、插入、希尔、归并排序算法的小结
- cmd 如何更改IP
- 《UNIX 环境高级编程》源代码在linux环境运行方法
- 初识getline函数
- 小弟初到,望大侠们多多指教
- 打包Windows CE应用程序(一)
- C++冒泡、插入、选择、希尔、快速排序函数
- 写csdn博客时 行间距过大时的解决方法
- NerverSWL
- 移植linux内核平台相关之 中断
- cin.get函数和cin.getline函数的区别
- Read Intensively or Extensively
- 闲侃西游团队 之 善搬救兵
- 好龌龊的一晚
- 局部性原理