优化的选择排序和折半查找法
2015-01-10 21:54
267 查看
int array[10] = {14,78,
67, 12,37,
92, 54,26,
31, 14};
BOOL neednext = YES;//优化的选择排序
for (int i =
0; i < 10 && neednext; i++) {
neednext = NO;
for (int j =0; j <
9 - i; j++) {
if (array[j] > array[j +
1]) {
neednext = YES;
int temp =array[j];
array[j] =array[j + 1];
array[j + 1] = temp;
}
}
}
for (int i =
0; i < 10; i++) {
printf("%d\t", array[i]);
}
//折半查找二分法查找
int start = 0;
int end = 9;
int mid = (start + end) /
2 ;
int number = 78;//
while (array[mid] != number && start < end) {
if (array[mid] > number ) {
end = mid - 1;
}else
start = mid + 1;
mid = (start + end) / 2;
}
if (array[mid] == number) {
printf("%d\n", mid);
}else
printf("此数不在数组中");
67, 12,37,
92, 54,26,
31, 14};
BOOL neednext = YES;//优化的选择排序
for (int i =
0; i < 10 && neednext; i++) {
neednext = NO;
for (int j =0; j <
9 - i; j++) {
if (array[j] > array[j +
1]) {
neednext = YES;
int temp =array[j];
array[j] =array[j + 1];
array[j + 1] = temp;
}
}
}
for (int i =
0; i < 10; i++) {
printf("%d\t", array[i]);
}
//折半查找二分法查找
int start = 0;
int end = 9;
int mid = (start + end) /
2 ;
int number = 78;//
while (array[mid] != number && start < end) {
if (array[mid] > number ) {
end = mid - 1;
}else
start = mid + 1;
mid = (start + end) / 2;
}
if (array[mid] == number) {
printf("%d\n", mid);
}else
printf("此数不在数组中");
相关文章推荐
- 【数据结构与算法】内部排序之二:冒泡排序和选择排序(改进优化,附完整源码)
- 内部排序之二:冒泡排序和选择排序(改进优化,附完整源码)
- 排序(2)——插入/希尔/选择/快速排序及优化
- java基础 选择排序、冒泡排序、折半查找法
- 数据结构-选择排序以及对它的优化
- 层层优化的选择排序
- 冒泡排序,选择排序,插入排序,快速排序的比较及优化
- 排序----冒泡排序的优化_选择排序_插入排序
- 插入排序,选择,冒泡,快速排序算法及优化
- 排序算法(二)选择排序解法及优化
- 【数据结构与算法】内部排序之二:冒泡排序和选择排序(改进优化,附完整源码)
- 数组的遍历,获取最大值,数组的反转,数组中元素的查找、冒泡排序、选择排序、折半查找法
- 看数据结构写代码(2) 选择排序 和 冒泡排序 算法优化
- 直接选择排序和它的优化
- 选择排序和冒泡排序区别以及冒泡排序优化
- 内部排序之二:冒泡排序和选择排序(改进优化,附完整源码)
- 机器学习与智能优化 之 排序与选择特征
- 黑马程序员——C语言之选择排序、折半查找法与二维数组
- 排序算法(四)选择排序及优化版本
- 选择排序及其优化方案