黑马程序员技术交流社区
标题:
很重要的东西,听说面试必考题,大家也都看看吧
[打印本页]
作者:
huayu
时间:
2015-10-6 21:38
标题:
很重要的东西,听说面试必考题,大家也都看看吧
#include<stdio.h>
int main(){
int arr[]={1,2,4,3,8,5};
// 冒泡排序
int temp;
int n=(sizeof(arr)/sizeof(int));
for (int i=0; i<n-1; i++) {
for (int j=0; j<n-1-i; j++) {
if (arr[j]<arr[j+1]) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for (int i=0; i<6; i++) {
printf("%d\t",arr[i]);
}
printf("\n");
// 选择排序
int tempMax;
for (int i=0; i<n; i++) {
for (int j=i+1; j<n; j++) {
if (arr[i]>arr[j]) {
tempMax=arr[i];
arr[i]=arr[j];
arr[j]=tempMax;
}
}
}
for (int i=0; i<6; i++) {
printf("%d\t",arr[i]);
}
printf("\n");
return0;
}
作者:
CherryQueen
时间:
2015-10-6 21:39
楼主写的不错,学习了。
作者:
huayu
时间:
2015-10-6 21:40
这是以前视频的做法,现在有新的写法了,但是觉得还是原来的好理解
作者:
yuezuiqingfeng
时间:
2015-10-6 21:47
嗯 //将数组从大到小排序
int arr[] = {6,4,55,73,52,97,29,66};
int len = sizeof(arr)/sizeof(int);
int temp;
int tempIndexMax = 0;
//选择排序
for (int i=0; i<len-1; i++) {
tempIndexMax = i;
for (int j=i+1; j<len; j++) {
if (arr[j]>arr[tempIndexMax]) {
tempIndexMax = j;
}
}
if (arr[i]!=arr[tempIndexMax]) {
temp = arr[i];
arr[i] = arr[tempIndexMax];
arr[tempIndexMax] = temp;
}
}
据说这种因为少了几次排序,节省内存些。
楼主的这种,理解着用着都比较省心。
作者:
guaiqiaorener
时间:
2015-10-6 22:00
谢谢分享
作者:
sclea
时间:
2015-10-6 22:18
方法都不错,各有各的感觉
作者:
wwf707542865
时间:
2015-10-6 22:46
面试还有点远,不过不妨碍我看看
作者:
jing397
时间:
2015-10-7 13:09
支持支持!!!
作者:
朱玉丁
时间:
2015-10-7 21:43
赞,顶一个
作者:
洪吉童
时间:
2015-10-7 22:11
先收藏了,有空看看
作者:
哐啷
时间:
2015-10-7 22:39
冒泡理解起来比排序简单点
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2