插入排序冒泡排序选择排序代码

  • 格式:doc
  • 大小:28.50 KB
  • 文档页数:2

内排序(一)插入排序冒泡排序选择排序
内排序,顾名思义,就是在计算机内存中对一组记录进行排序。这里给出了三种最差和
平均情况下时间复杂度为n^2的内排序算法:插入排序,冒泡排序和选择排序。这三种排序
也被成为交换排序。
这里取升序排序。简单来说,插入排序就是从第一个元素开始,依次将每一个元素放到
正确的位置;选择排序则是将数组分成已排序和未排序两部分,在未排序部分选出最小值追
加到已排序部分后面,已排序部分范围扩大;而冒泡排序则是从后往前冒泡,同样将数组分
成了已排序和未排序部分。
代码实现(C++实现):
#include
using namespace std;

void inssort(int arr[],int n);
void bubsort(int arr[],int n);
void selsort(int arr[],int n);
void swap(int arr[],int x,int y);

int main()
{
const int n=5;//数组长度
int arr[n]={1,2,5,4,3};
//inssort(arr,n);//调用插入排序
//bubsort(arr,5);
selsort(arr,5);
for(int i=0;icout<system("pause");
return 0;
}

//插入排序
void inssort(int arr[],int n)
{
for(int i=1;i{
for(int j=i;j>=1;j--)
{
if(arr[j]}
}
}

//冒泡排序
void bubsort(int arr[],int n)
{
for(int i=0;i{
for(int j=n-1;j>i;j--)
{
if(arr[j]}
}
}

//选择排序
void selsort(int arr[],int n)
{
for(int i=0;i{
int pivot=i;
for(int j=n-1;j>i;j--)
{
if(arr[j]}
swap(arr,i,pivot);
}
}

//数组元素交换函数
void swap(int arr[],int x,int y)
{
int temp;
temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}