c语言函数调用排序用插入法,C语言:编写查找和排序函数(二分查找,冒泡排序,选择排序法,插入排序)...
任務代碼:
二分查找數組的一個數字:(函數法)
#include int binarySearch(int a[],int len,int key)
{
int low=0,high=len-1,mid;
int i=-1;//相當于index
while(low<=high)
{
mid=(low+high)/2;
if(a[mid]==key)
{
i=mid;
break;
}
else if(key>a[mid])
{
low=mid+1;
}
else
{
high=mid-1;
}
}
return i;
}
int main()
{
int array[10]={0,1,2,3,4,5,6,7,8,9};
//先排序
bubbleSort(array,10);
//二分查找
int key;
int index=-1;
printf("輸入你想查找的數字:");
scanf("%d",&key);
index=binarySearch(array,10,key);
if(index>=0)
{
printf("找到這個數字位于第%d個",index);
}
else
{
printf("沒有找到這個數!");
}
printf("\n");
return 0;
}
冒泡排序(升序排序1):
#include void bubbleSort(int a[],int len)
{
int i,j,t;
for(i=0;ia[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
int main()
{
int array[10]={4,7,9,1,2,6,5,3,8,0};
//冒泡排序
bubbleSort(array,10);
printf("排序后的數組為:\n");
int i;
for(i=0;i<10;i++)
{
printf("%d ",array[i]);
}
printf("\n");
return 0;
}
選擇排序法:(升序排序法2)
#include void select_sort(int a[],int n)
{
int i,j,k,t;
for(i=0;i
插入排序:(升序排序法3)
#includevoid InsertionSort(int *num,int n)
{
int i = 0;
int j = 0;
int tmp = 0;
for(i = 1;i=0&&tmp=0對其進行邊界限制。第二個為插入判斷條件
{
num[j+1] = num[j];//若不是合適位置,有序組元素向后移動
j--;
}
num[j+1] = tmp;//找到合適位置,將元素插入。
}
}
int main()
{
int i = 0;
int num[8]={9,3,4,2,6,7,5,1};
InsertionSort(num,8);
/*這個函數必須知道元素的個數,所以將元素個數傳入。
有心者可以在函數內部用sizeof求出元素個數 */
for(i=0;i<8;i++)
{
printf("%d ",num[i]);
}
return 0;
}
執行情況:
第一題:
第二題&第三題&第四題:
知識總結:
總結
以上是生活随笔為你收集整理的c语言函数调用排序用插入法,C语言:编写查找和排序函数(二分查找,冒泡排序,选择排序法,插入排序)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: echart 高度 不用 不撑满_注意厨
- 下一篇: php三维数组转换二维数组,php 三维