//冒泡排序
#include
/*
void bubbleSort(int* arr, int n) {
for(int i=0;i<n-1;i++)
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
int main() {
int arr[] = { 10,6,5,2,3,8,7,4,9,1 };
int n = sizeof(arr) / sizeof(int);
bubbleSort(arr, n);
printf(“排序后的数组为:\n”);
for (int j = 0; j < n; j++)
printf("%d “, arr[j]);
printf(”\n");
return 0;
}
/
//选择排序
/
void SelectSort(int *a, int n) {
for (int i = 0; i < n; i++) {
int key = i;
for (int j = i + 1; j < n; j++) {
if (a[j] < a[key]) {
key = j;
}
}
if (key != i) {
int tmp = a[key];
a[key] = a[i];
a[i] = tmp;
}
}
}
int main() {
int a[] = { 12,3,15,2,6,22,8,10,1,33,45,24,7 };
int n = sizeof(a) / sizeof(int);
SelectSort(a, n);
printf(“排序好的数组:\n”);
for (int k = 0; k < n; k++)
printf("%d “, a[k]);
printf(”\n");
return 0;
}
*/
//堆排序
void CreatHeap(int a[], int i, int n) {
for (; i >= 0; --i) {
int left = i * 2 + 1;;
int right = i * 2 + 2;
int j = 0;
if (right < n) {
a[left] > a[right] ? j = left : j = right;
}
else
j = left;
if (a[j] > a[i]) {
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}void HeapSort(int a[], int n) {
CreatHeap(a, n / 2 - 1, n);
for (int j = n - 1; j >= 0; j–) {
int tmp = a[0];
a[0] = a[j];
a[j] = tmp;
int i = j / 2 - 1;
CreatHeap(a, i, j);
}
}
int main() {
int a[] = { 10,6,5,7,12,8,1,3,11,4,2,9,16,13,15,14 };
int n = sizeof(a) / sizeof(int);
HeapSort(a, n);
printf(“排好序的数组为:”);
for (int i = 0; i < n; i++) {
printf("%d “, a[i]);
}
printf(”\n");
return 0;
}
1488

被折叠的 条评论
为什么被折叠?



