您的位置:首页 > 其它

冒泡排序、选择排序和插入排序--由小到大,,由大到小

2016-03-15 21:56 344 查看
//选择排序

#include <iostream>
#include <stdio.h>
//--------------------------------------------------------------------
//从大到小排序 冒泡排序
void sort_bubble_down(int* a,int len)
{
int temp = 0;
int i = 0;
int j = 0;
for(i=0;i<len;i++)
{
for(j=i+1;j<len;j++)
{
if(a[i]<a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
//从小到大排序 冒泡排序
void sort_bubble_up(int* a,int len)
{
int temp = 0;
int i = 0;
int j = 0;
for(i=0;i<len;i++)
{
for(j=i+1;j<len;j++)
{
if(a[i]>a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
//--------------------------------------------------------------------
//从小到大排序 选择排序

void sort_select_up(int* a,int len)
{
int i = 0;
int j = 0;
int k = 0;
for(i=0;i<len;i++)
{
k = i;
for(j=i+1;j<len;j++)
{
if(a[k]>a[j])
{
k = j;
}
}
if(i!=k)
{
a[i] = a[i]+a[k];
a[k] = a[i]-a[k];
a[i] = a[i]-a[k];
}
}
}
//从大到小排序 选择排序
void sort_select_down(int* a,int len)
{
int i = 0;
int j = 0;
int k = 0;
for(i=0;i<len;i++)
{
k = i;
for(j=i+1;j<len;j++)
{
if(a[k]<a[j])
{
k = j;
}
}
if(i!=k)
{
a[i] = a[i]+a[k];
a[k] = a[i]-a[k];
a[i] = a[i]-a[k];
}
}
}
//--------------------------------------------------------------------
//从小到大排序 插入排序
void sort_insert_up(int* a,int len)
{
int i = 0;
int j = 0;
int k = 0;
int temp = 0;

for(i=1;i<len;i++)
{
k = i;
temp = a[k];

for(j=i-1;j>=0;j--)
{
if(a[j]>temp)
{
a[j+1] = a[j];
k = j;	//记下移动的位置
}
}
a[k] = temp;//插入
}
}

//从大到小排序 插入排序
void sort_insert_down(int* a,int len)
{
int i = 0;
int j = 0;
int k = 0;
int temp = 0;

for(i=1;i<len;i++)
{
k = i;
temp = a[k];

for(j=i-1;j>=0;j--)
{
if(a[j]<temp)
{
a[j+1] = a[j];
k = j;	//记下移动的位置
}
}
a[k] = temp;//插入
}
}
//--------------------------------------------------------------------
int main(int argc, char *argv[])
{
int array[10] = {0};
int index = 0;
int i = 0;
printf("please input 10 number!\n");
while((scanf("%d",&array[index]) != EOF)&&(getchar()!='\n'))
{
index++;
}

printf("index = %d\n",index);

for(i=0;i<=index;i++)
{
printf("%dth : %d\n",i,array[i]);
}

printf("down...\n");
sort_insert_down(array,index+1);
for(i=0;i<=index;i++)
{
printf("%dth : %d\n",i,array[i]);
}

printf("up...\n");
sort_insert_up(array,index+1);
for(i=0;i<=index;i++)
{
printf("%dth : %d\n",i,array[i]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: