利用二分法排序

2021-07-26 16:33:45 字數 1050 閱讀 9847

#include

int main()

/*將array陣列的前兩個數按大小賦給new陣列的前兩個元素*/

new[0] = (array[0] < array[1]) ? array[0] : array[1];

new[1] = (array[0] > array[1]) ? array[0] : array[1];

m = 2;         //新陣列new的有效個數

for( i = 2 ; i < 10 ; i++ )

else

}/*比較插入的數與low和up位置的大小,準確定位要插入的位置   */

if( (up - low) == 1)

new[low + 1] = array[i];

}/*要插入up後面時,一定是要排在所有元素的後面,所有直接加在後面即可*/

else if(array[i] > new[up])

/*要插入low前面時,一定是第乙個元素,所以所有的元素都要後移乙個*/

else

new[low] = array[i];}}

m++;     //每插入乙個數,new陣列的有效個數加1

}

printf("the new  10 numbers is :\n");

for( i = 0 ; i < 10 ; i++ )

putchar('\n');

return 0;

}

程式執行示例:

please input 10 numbers for array:

12 45 78 65 24  23 01 10 12 15

the new  10 numbers is :

1  10  12  12  15  23  24  45  65  78

二分法排序C

首先說一下二分法排序的原理,演算法思想簡單描述 在插入第i個元素時,對前面的0 i 1元素進行折半,先跟他們 中間的那個元素比,如果小,則對前半再進行折半,否則對後半 進行折半,直到left right,然後再把第i個元素前1位與目標位置之間 的所有元素後移,再把第i個元素放在目標位置上。二分法排序...

二分法快速排序

我在實現二分法快速排序的時候,最初的程式是這樣的。include using namespace std void qsort int arr,int left,int right while l r arr l value l if arr l value while l r arr l valu...

氣泡排序 二分法

核心 掐頭去尾取中間.一次砍一半 二分查詢.每次能夠排除掉一半的資料.查詢的效率非常高.但是侷限性比較大.必須是有 序序列才可以使用二分查詢 兩種演算法 常規迴圈,遞迴迴圈 使用二分法可以提高效率,前提條件 有序序列 lst 22,33,44,55,66,77,88,99,101 238 345 4...