#include<stdio.h>
//冒泡排序
void bullerSort(int arr[], int len)
{
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - 1-i; j++)
{
if (arr[j]>arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
//选择排序
void selectSort(int arr[], int len)
{
for (int i = 0; i < len - 1; i++)
{
int min = i;
for (int j = i + 1; j < len; j++)
{
if (arr[j] < arr[min])
{
min = j;
}
}
int temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
//插入排序
void insertSort(int arr[], int len)
{
int temp;//保存要插入的元素
int j;//从当前要比较插入的元素的前面一个元素开始比较
for (int i = 1; i < len; i++)//第一个元素视为有序,把后面的元素一个一个的插入到前面
{
temp = arr[i];
j = i - 1;
while (j >= 0 && arr[j]>temp)
{
arr[j + 1] = arr[j];//前面的元素往后面移动
j--;
}
arr[j + 1] = temp;//把要插入的元素插入进对应的位置
}
}
//快速排序
void quickSort(int arr[], int lift, int right)
{
if (lift > right)
{ return;}
int i = lift, j = right, temp = arr[i];//获取左右和基准数
while(i < j)
{
while (temp < arr[j] && i < j)
j--;
if (i < j)
arr[i++] = arr[j];
while (temp>arr[i] && i < j)
i++;
if (i < j)
arr[j--] = arr[i];
}
arr[i] = temp;
quickSort(arr, lift, i - 1);
quickSort(arr, i+1, right);
}
//输出
void print(int arr[], int len)
{
for (int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
}
int main()
{
int arr[] = { 5, 7, 6, 4, 9, 3, 5, 2, 0, 7, 8, 9, 1, 1 };
//桶排序
//int app[10] = { 0 };
//for (int i = 0; i < sizeof(arr) / sizeof(int); i++)
//{
// app[arr[i]]++;
//
//}
//for (int i = 0; i < 10; i++)
//{
// for (int j = 1; j <= app[i]; j++)
// {
// printf("%d", i);
// }
//}
quickSort(arr, 0,13);
print(arr, 14);
getchar();
getchar();
return 0;
}
排序
最新推荐文章于 2022-04-29 23:24:15 发布