您的位置:首页 > 其它

选择排序和 标准冒泡排序算法 (简单优化后的冒泡排序)

2015-06-18 20:49 330 查看
是标准冒泡排序法

void bubbleSort(int size , int a[])


选择排序法

void selectSort(int size , int a[])


#include <stdio.h>

void bubbleSort(int size , int a[]);
void selectSort (int size , int a[]);

int main(int argc, const char * argv[]) {
// insert code here...
printf("Hello, World!\n");

int test[] = {25,15,85,64,3,54,96,21,2,32};

bubbleSort(10, test);

for (int i = 0; i < 10; i++) {
printf("test[%d] %d \n",i,test[i]);
}

return 0;
}
//冒泡
void bubbleSort(int size , int a[]){
int tmp;
for (int i = size - 1; i > 0; i-- ) {

for (int j = i - 1 ; j >=0 ; j --){

if (a[j] > a[i]) {

tmp = a[j];
a[j]=a[i];
a[i] = tmp;

}

}

}
}
//选择排序
void selectSort(int size , int a[]){
int maxIndex ;
int tmp;
for (int i = size - 1; i > 0; i-- ) {
maxIndex = i ;

for (int j = i - 1 ; j >=0 ; j --) {
if (a[j] > a[maxIndex]) {
maxIndex = j;
}
}
tmp = a[i];
a[i] = a[maxIndex];
a[maxIndex] = tmp;
}
}


优化后的 冒泡排序法

void bubbleSortOptimized(int size , int a[]){
int tmp;
bool isChange = false;
for (int i = size - 1; i > 0; i-- ) {
isChange = false;
for (int j = i - 1 ; j >=0 ; j --){
printf("i = %d  j = %d \n",i,j);
if (a[j] > a[i]) {
isChange = true;
tmp = a[j];
a[j]=a[i];
a[i] = tmp;
}
}
if (isChange == false) {
break;
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: