冒泡排序+二分法查找

简介: 1 #include 2 3 void bubble(int *arr, int length) 4 { 5 int i, j, tmp; 6 for(i=0;i
 1 #include <stdio.h>
 2 
 3 void bubble(int *arr, int length)
 4 {
 5     int i, j, tmp;
 6     for(i=0;i<length-1;i++)
 7     {
 8         for(j=0;j<length-1-i;j++)
 9         {
10             if(arr[j]>arr[j+1])
11             {
12                 tmp = arr[j];
13                 arr[j] = arr[j+1];
14                 arr[j+1] = tmp;
15             }
16         }
17     }
18 
19 }
20 
21 int search(int *arr, int key, int high, int low)
22 {
23     int middle = 0;
24     if(high<low)
25         return -1; 
26     middle = (low+high)/2;
27     printf("hello\n");
28     if(arr[middle] == key)
29     {   
30         return middle;
31     }   
32     else if(arr[middle]<key)
33         return search(arr, key, high, middle+1);
34     }
35     else
36     {
37         return search(arr, key, middle-1, low);
38     }
39 }
40 
41 int main()
42 {
43     int i = 0;
44     int a[] = {1, 32, 5, 56, 39, 4, 67, 83, 25, 98};
45     
46     for(i=0;i<10;i++)
47     {   
48         printf("%d\t", a[i]);
49     }
50     printf("\n");
51     bubble(a, 10);
52     i = search(a, 32, 9, 0);
53     printf("i=%d\n", i);
54     for(i=0;i<10;i++)
55     {   
56         printf("%d\t", a[i]);
57     }
58     printf("\n");
59     return 0;
60 }

 

相关文章
|
1月前
|
算法 测试技术 API
深入理解二分查找算法(一)
深入理解二分查找算法(一)
|
6月前
直接插入,希尔排序,选择排序
直接插入,希尔排序,选择排序
|
4月前
|
存储 算法 C#
C# | 二分查找算法的实现
二分查找法一种在**有序数组**中查找目标值的算法。划重点——“**有序**”,与需要遍历整个数组的查询算法不同,二分查找法通过将数组分成两部分来快速定位目标值所在的位置。 它的主要好处在于它的效率很高。因为它能够通过每次排除一半的元素来快速缩小搜索范围,因此在大型数据集上使用二分查找法可以显著提高查找速度。
20 0
|
4月前
|
算法
【算法】排序——选择排序和交换排序(快速排序)
上篇文章讲述了插入排序及插入排序的优化希尔排序,今天我们继续给大家带来排序中的选择排序和交换排序,选择排序包括直接选择排序、 其中还包括堆排序,因为之前讲过堆排序,这篇文章就不多讲解,点击直达堆排序。交换排序包括冒泡排序、快速排序。让我们开始今天的选择排序之旅吧!!!
|
7月前
|
算法
二分查找算法
以整型升序数组arr为例,将数组分为两部分:数组大小为size,设置数组下标left、mid、right,初始时分别为首元素下标0、中间元素下表(right-left)/2和最后元素下标 size-1,左部分为left-mid,右部分为 mid-right 设查找值为x,比较x与mid的大小。
40 0
|
10月前
|
算法 搜索推荐
选择排序之简单选择排序
选择排序之简单选择排序
47 0
|
11月前
|
算法 搜索推荐
简单选择排序,直接插入排序、冒泡排序
简单选择排序,直接插入排序、冒泡排序
|
11月前
关于二分查找与冒泡排序
关于二分查找与冒泡排序
|
人工智能 C++
数组排序之桶排序
利用一维数组的知识简单实现桶排序,即对计算机随机读入的0-20之间的5个数从小到大排序
46 0