排序是程序设计中的一种重要运算,它的功能是将一个数据元素的无序列调整为一个有序序列。
按由大到小的顺序称为降序!
按由小到大的顺序称为升序!
计算机处理的25%的机时用于排序的。 这里的计算机指的是服务器,大型计算机。
冒泡排序:
#include <stdio.h>
#define LISTSIZE 100
typedefint Datatype;
void Bubblesort1(Datatype arr[],int _nSize);
int main(int argc,const char * argv[])
{
return 0;
}
void Bubblesort1(Datatype arr[],int _nSize)
{
for (int i=0; i<_nSize; i++)//外层循环用于指定排序的范围。
{ int bFlag=0;//为0时,指定范围的数据已经排好序,为1时指定范围没有排好序。
for (int j=_nSize-1; j>i; j--)//内层循环按要求进行排序,在外层指定范围内找到最小的数。将它放在最上面。
{
if (arr[j]<arr[j-1])
{
int temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
bFlag=1;
}
}
if (!bFlag)//本趟排序没有发生排序,则提前终止算法。
{
break;
}
}
}
#include <stdio.h>
#define LISTSIZE 100
typedef int Datatype;
int main(int argc, const char * argv[])
{
//直接选择排序。
return 0;
}
void SelectSort(Datatype arr[],int cnt)
{
for (int i=0; i<cnt-1; i++)//外层循环的作用指定排序的范围,
{
int min=i;
for (int j=i+1; j<cnt; j++)//内层循环的作用是在指定范围内的最小的数,min记录最小数的下标。
{
if ((arr[min]>arr[j]))
{
min=j;
}
}
if (min!=i)//如果 min 与i相等,不交换。意为上面是最小的数。不相等则交换。
{
Datatype temp=arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
}
}