1.冒泡排序:
int main()
{
int arr[10] = {7,8,5,3,1,4,2,9,0,6};
int len = sizeof(arr)/4-1;
for (int i = 0; i < len; i++)
{
for (int j = 0; j <len - i ; j++)
{
if (arr[j] > arr[j + 1])
{
int temp;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int x = 0; x < 10; x++)
{
printf("%d ",arr[x]);
}
}
2.快速排序:
#include<stdio.h>
int Sort(int* arr, int low, int high);
void QuickSort(int arr[], int low, int high);
void PrintArray(int arr[], int size);
int main() {
int arr[20] = { 7,8,5,3,1,4,2,9,0,6,9,7,8,6,0,0,5,2,3,5 };
int len = sizeof(arr) / sizeof(arr[0]) - 1;
QuickSort(arr, 0, len);
PrintArray(arr, len + 1);
return 0;
}
int Sort(int* arr, int low, int high) {
int povit = arr[low];
while (low < high) {
while (low < high && arr[high] >= povit) high--;
arr[low] = arr[high];
while (low < high && arr[low] <= povit) low++;
arr[high] = arr[low];
}
arr[low] = povit;
return low;
}
void QuickSort(int arr[], int low, int high) {
if (low < high) {
int pivor = Sort(arr, low, high);
QuickSort(arr, low, pivor);
QuickSort(arr,pivor+1, high);
}
}
void PrintArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
3.简单选择排序:
#include<stdio.h>
void Selectsort(int arr[], int len);
void swap(int* a, int* b);
void SelecPrint(int arr[], int len);
int main() {
int arr[] = { 2,5,0,1,1,0,3,6,7,9 };
int len = sizeof(arr)/4;
Selectsort(arr, len);
SelecPrint(arr, len);
}
void Selectsort(int arr[], int len)
{
for (int i = 0; i < len-1; i++)
{
int min = i;
for (int j = i; j < len; j++)
{
if (arr[j] < arr[min]) min = j;
}
if (min != i)
{
swap(&arr[i], &arr[min]);
}
}
}
void swap(int *a,int *b)
{
int temp = 0;
temp = *a;
*a = *b;
*b = temp;
}
void SelecPrint(int arr[],int len)
{
for (int i = 0; i < len ; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}