1.冒泡排序算法
void paixu(int legth, int arr[])
{
int flag = 1; //flag=1表示数组否发生改变
while(legth-- && flag)
{
flag = 0; // 没有发生改变
for (int i = 0; i<length; i++)
{
if ( arr[i+1] < arr[i] )
{
flag = 1; // 数组发生改变位置交换
int temp = arr[i + 1];
arr[i + 1] = arr[i];
arr[i] = temp;
}
}
}
}
2.选择排序
基本思想还是冒泡排序。每一轮找到最小值后和第一个元素进行交换,依次类推
void paixu(int arr, int leghth)
{
for(int i=0; i<legrh; i++)
{
int k = i;
for(int j=i; j<length; j++)
{
if(arr[j] < arr[k])
{
k = j;
}
}
swap(arr[i],arr[k]);
}
}
3.插入排序
优点是当原始序列基本有序时,再将一个新的数据插入进来比较方便,也比较高效率。
void insertsort(int arr[], int legth)
{
for(int i=1; i<legth; i++)
{
for(int j=i; j>=1; &&arr[j]<arr[j-1];j--)
{
swap(arr[j],arr[j-1]);
}
}
}
4.希尔排序
优化版的插入排序
void shellSort(int arr[], int legth)
{
int h=4;
int h=1;
int t = legrh / 3;
while(h<t) h= 3*h+1;
while (h>=1)
{
for(int i=h; i<legth; i++)
{
for(int j=i; j>=h; &&arr[j]<arr[j-h]; j-h)
{