冒泡,选择异同
冒泡 |
外层 i 循环 0 到(到是指 <= ,下同) len-2 |
里层a[ j ] > a[j + 1] 比较, j循环 0 到 len - 2 -i |
选择 |
外层 i 循环 0 到 len- 2 |
里层a[ i ] > a[j + 1] 比较 , j循环 i 到 len - 2 |
//
// main.c
// 冒泡排序
//
// Created by LongMa on 15/8/8.
// Copyright (c) 2015年 itcast. All rights reserved.
//
#include <stdio.h>
#define len 10
void sortMaopao(inta[len])
{
for (int i = 0; i <= len- 2 ;i++)
{
for (intj = 0; j <= len- 2 - i ; j++)
{
if (a[j] > a[j + 1])
{
int temp= a[j];
a[j] = a[j + 1];
a[j + 1]= temp;
}
}
}
}
int main(intargc, const char* argv[])
{
// insertcode here...
int a[len] = {1,2,9,8,5,6,33,22,11,55};
sortMaopao(a);
for (int k = 0; k < len ;k++)
{
printf("%d\t",a[k]);
}
return 0;
//
// main.c
// 选择排序
//
// Created byLongMa on 15/8/8.
// Copyright (c) 2015年 itcast. All rights reserved.
#include <stdio.h>
#define len 10
void sortXz(int a[len])
{
for (int i = 0; i <= len - 2; i++)
{
for (int j = i ; j <= len - 2 ; j++)
{
if (a[i] > a[j + 1])
{
a[i ] = a[i] ^ a[j + 1];//注意 下标!不是 i + 1!汗,装逼需谨慎!
a[j + 1] = a[i] ^ a[j + 1];
a[i ] = a[i] ^ a[j + 1];
}
}
}
}
int main(int argc, const char * argv[])
{
int a[len] = {1,3,9,4,7,88,-7,0,44,1};
sortXz(a);
for (int l = 0; l < len; l++)
{
printf("%d\t",a[l]);
}
return 0;
}