各种常见的排序方法-创新互联
我目前学到的常见的有三种排序方法 插入,选择和冒泡排序 。
创新互联公司科技有限公司专业互联网基础服务商,为您提供绵阳机房托管,高防服务器,成都IDC机房托管,成都主机托管等互联网服务。这里面我觉得插入排序是最难理解的
这次我是结合指针来操作数组
这个是插入排序
#includevoid insert(int *p, int n)
{
int i, j, temp;
for (i = 1; i< n; i++)
{
temp = *(p + i);
for (j = i - 1; j >= 0 && temp< *(p + j); j--)//将大于temp的元素循环后移
*(p + j + 1) = *(p + j);
*(p + j + 1) = temp;
}
}
int main()
{
int a[10] = {78, 34, 54, 23, 780, 64, 45, 75, 34, 66};
insert(a, 10);
for (int i = 0; i< 10; i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
这是选择排序
#includevoid selectsort(int *p, int n)
{
int i, j, *pt, temp;
for (i = 0; i< n; i++)
{
pt = p + i;
for (j = i + 1; j< n; j++)
{
if (*(p + j)< *pt)
pt = p + j;
}
temp = *pt, *pt = *(p + i), *(p + i) = temp;
}
}
int main()
{
int a[10] = {78, 34, 54, 23, 780, 64, 45, 75, 34, 66};
selectsort(a, 10);
for (int i = 0; i< 10; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
这是冒泡排序
#includevoid bubblesort(int *p, int n)
{
int i, j, temp;
for (int i = n - 1; i >= 0; i--)
{
for (j = 0; j< i; j++)
{
if (*(p + j) >*(p + j + 1))
{
temp = *(p + j + 1);
*(p + j + 1) = *(p + j);
*(p + j) = temp;
}
}
}
}
int main()
{
int a[10] = {78, 34, 54, 23, 780, 64, 45, 75, 34, 66};
bubblesort(a, 10);
for (int i = 0; i< 10; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前标题:各种常见的排序方法-创新互联
本文路径:http://ybzwz.com/article/dpgogj.html