// 冒泡
void sopo(int *a, int count){
for (int i = 0; i < count; i++) {
for (int j = 0; j < count - 1 - i; j++) {
if (a[j] > a[j+ 1]) {
a[j] ^= a[j+1];
a[j+1] ^= a[j];
a[j] ^= a[j+1];
}
}
}
}
// 选择
void selected(int *a, int count){
for (int i = 0; i < count - 1; i++) {
for (int j = i + 1; j < count; j++) {
if (a[i] > a[j]) {
a[j] ^= a[i];
a[i] ^= a[j];
a[j] ^= a[i];
}
}
}
}
// 快速
void fast(int *a, int l, int r){
if (l > r) return;
int i = l;
int j = r;
int temp = a[i];
while (i < j) {
while (i < j) {
if (temp > a[j]) {
a[j] ^= a[i];
a[i] ^= a[j];
a[j] ^= a[i];
i++;
break;
}
j--;
}
while (i < j) {
if (temp < a[i]) {
a[j] ^= a[i];
a[i] ^= a[j];
a[j] ^= a[i];
j--;
break;
}
i++;
}
}
fast(a, 0, i -1);
fast(a, i + 1, l);
}
int main(int argc, const char * argv[]) {
int arr[] = {11, 2, 33, 4, 55, 6, 77, 88, 9, 100};
int count = sizeof(arr) / sizeof(arr[0]);
fast(arr, 0, count - 1);
for (int i = 0; i < count; i++) {
printf("%d\n", arr[i]);
}
return 0;
}
冒泡,选择,快速排序
最新推荐文章于 2022-07-18 12:43:49 发布