各种排序算法
时间:2010-06-08 来源:abcsand
原博客老文章,转载自哪里也没写。
冒泡排序
基本思想:
先取第一个元素,将它与后面n-1个元素比较,将n个元素中最小的移到首部.
接着,忽略第一个元素,取第二个元素,将它与后面的n-2个元素比较,将n-1个
元素中最小的移到位置2.依此类推,直至第n个元素.
1.list->r[1..n]
2.for i:1 to n do
3.for j:i to n do
4.if r[i]>r[j] then
5.swap(r[i],r[j])
6.end if
7.end for
8.end for
源代码:
void Bubble_Sort(int r[],int start,int end)
{
int i,j;
for(i=start;i<=end;i++)
{
for(j=i;j<=end;j++)
{
if(r[i]>r[j])
{
swap(&r[i],&r[j]);
}
}
}
}
选择排序
基本思想:
对待排序的记录序列进行n-1遍处理,第i遍处理将r[i..n]中最小的元素与r[i]
将换.这样,i遍处理后,前i个元素已经是正确的了.
1.list->r[1..n]
2.for i:1 to n-1 do
3.minpos:=i
4.for j:i to n do
5.if r[j]
基本思想:
先取第一个元素,将它与后面n-1个元素比较,将n个元素中最小的移到首部.
接着,忽略第一个元素,取第二个元素,将它与后面的n-2个元素比较,将n-1个
元素中最小的移到位置2.依此类推,直至第n个元素.
1.list->r[1..n]
2.for i:1 to n do
3.for j:i to n do
4.if r[i]>r[j] then
5.swap(r[i],r[j])
6.end if
7.end for
8.end for
源代码:
void Bubble_Sort(int r[],int start,int end)
{
int i,j;
for(i=start;i<=end;i++)
{
for(j=i;j<=end;j++)
{
if(r[i]>r[j])
{
swap(&r[i],&r[j]);
}
}
}
}
选择排序
基本思想:
对待排序的记录序列进行n-1遍处理,第i遍处理将r[i..n]中最小的元素与r[i]
将换.这样,i遍处理后,前i个元素已经是正确的了.
1.list->r[1..n]
2.for i:1 to n-1 do
3.minpos:=i
4.for j:i to n do
5.if r[j]
相关阅读 更多 +