黑马程序员技术交流社区
标题:
求冒泡排序法和选择排序法
[打印本页]
作者:
rzx
时间:
2015-11-3 21:28
标题:
求冒泡排序法和选择排序法
求冒泡排序法和选择排序法才能牢牢记住 求各位大神解救!!!!
作者:
gabriel2016
时间:
2015-11-4 01:29
支持一下!
作者:
Mu。
时间:
2015-11-4 17:47
本帖最后由 Mu。 于 2015-11-4 17:54 编辑
#include <stdio.h> int maoPao(int arr[],int len){ int temp;
//双重循环
for (int i = 0; i < len-1; i++) {
//因为i的值没变化一次,跑了一趟,按照冒泡思想
//有一个数已经下沉了
//没有必要和已经有序的数组进行比较了
for (int j = 0; j < len-1-i; j++) {
//交换a[j] 和 a[j+1]的值
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return 0;
}
int main(int argc, const char * argv[]) {
int a[10]={1,200,23,45,12,34,19,4,388,63};
//排序之前的
for (int i = 0; i < 10; i++) {
printf("%d\t",a
);
} printf("\n");
//进行排序
maoPao(a, 10);
//把数组已经排完序
//遍历数组 for (int i = 0; i < 10; i++) {
printf("%d\t",a
);
}
printf("\n");
return 0;
}
作者:
xiaobei
时间:
2015-11-4 18:52
我帖子里有冒泡法的程序,选择排序没有写
作者:
jeffdy66
时间:
2015-11-4 22:22
#include <stdio.h>
void maoPao (int arr[],int len){
int temp ; // 0 1 2 3 4 5 6 7 8 9
for( int i=0; i<len-1; i++){
for(int j=0; j<len-1-i; j++){
if(arr[j]>arr[j+1]){
// 交换a[j]和a[j+1]的值
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
int main(int argc, const char * argv[]) {
int a[10]={43,87,545,641,567,12,32,43,500,94};
// 排序前
for (int i=0; i<10; i++) {
printf("%d\t",a[i]);
}
printf("\n");
// 进行排序
maoPao(a,10 );// 把数已经排序玩了
// 遍历数组
for(int i=0; i<10; i++){
printf("%d\t",a[i]);
}
return 0;
}
作者:
253186803
时间:
2015-11-4 23:00
自己想想冒泡和选择的区别就行了
作者:
大雕会飞
时间:
2015-11-6 22:18
一个是先把最小的数依次排到右边,一个是把最大的数找出来,将它的值和第一个数的值交换,然后依次,思想很牛的。
作者:
zhudong100
时间:
2015-11-7 12:58
建议理解记忆,冒泡就是各个相邻的元素相互比较,选择就是一个元素与与其它所有元素比较。每循环一次,都会有一个元素排好位置。
作者:
勇猛的小黑
时间:
2015-11-7 15:38
对于这两个排序,我也纠结了好久怎么才能记住,后来发现最主要的还是理解这两个排序的思想。然后有了思路一切都好说。
作者:
勇猛的小黑
时间:
2015-11-7 15:39
思路最重要
作者:
正在输入中...
时间:
2015-11-7 17:09
思想很重要,记住了思想,代码实现起来就很容易啦
作者:
hulk374
时间:
2015-11-7 21:36
正在学习选择排序
作者:
逆光.初见
时间:
2015-11-7 23:31
方法 sort(); 就ok!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2