// 二分法查找排序
int a[10]={21,56,43,12,3,99,56,23,2,12};
int i,j,k,low,high,mid,t;
for(i=k=1;i<sizeof a/sizeof a[0];i++)//起始認為第一個元素是有序的,high=low=k-1=0,所以k=1,
{
low=0;
high=k-1;
while(low<=high)//折半查找時齐遵,low與high相遇场勤,則找到插入位置
{
mid=(low+high)/2;
if(a[mid]>=a[i])high=mid-1;//元素比mid小们拙,因此在low到mid-1范圍內搜索位置
else low=mid+1;
}
if(high<i || a[low]!=a[i]) //a[low]的值為當前排序的中位值锡移,應該是插入的 位置,退出while的條件為high<low,所以if條件成立說明插入的值不在
{
t=a[i];//保存當前的值崔赌,
for(j=k-1;j>=low;j--) //插入位置是low意蛀,所以low到high=k-1范圍內的元素都要向后移動
a[j+1]=a[j];
a[low]=t; //low被賦值為已經被覆蓋掉的a[i],如果這里寫a[i]健芭,此時的a[i]不是之前的a[i]县钥,已經移動過了
k++;
}
}
for(j=0;j<k;j++)
printf("%4d",a[j]);
printf("\n");
//冒泡排序
int b[10]={21,56,43,12,3,99,56,23,2,12};
int n = sizeof b/sizeof b[0];
int temp;
for(i=0; i<n; i++){//表示n次排序過程。
for(j=1; j<n-i; j++){
if(b[j-1] > b[j]){//前面的數(shù)字大于后面的數(shù)字就交換
//交換a[j-1]和a[j]
temp = b[j-1];
b[j-1] = b[j];
b[j]=temp;
}
}
}
for(j=0;j<n;j++)
printf("%4d",b[j]);
printf("\n");
冒泡致扯、二分法查找排序
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門熊锭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弧轧,“玉大人,你說我怎么就攤上這事碗殷【铮” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵锌妻,是天一觀的道長代乃。 經常有香客問我,道長仿粹,這世上最難降的妖魔是什么搁吓? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮吭历,結果婚禮上堕仔,老公的妹妹穿的比我還像新娘。我一直安慰自己晌区,他們只是感情好摩骨,可當我...
- 文/花漫 我一把揭開白布通贞。 她就那樣靜靜地躺著,像睡著了一般恼五。 火紅的嫁衣襯著肌膚如雪昌罩。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼夯辖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了董饰?” 一聲冷哼從身側響起,我...
- 正文 年R本政府宣布昔字,位于F島的核電站,受9級特大地震影響首繁,放射性物質發(fā)生泄漏作郭。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一弦疮、第九天 我趴在偏房一處隱蔽的房頂上張望夹攒。 院中可真熱鬧,春花似錦胁塞、人聲如沸咏尝。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽状土。三九已至无蜂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蒙谓,已是汗流浹背斥季。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 首先總結以下Java和C置侍、C++中的一般控制臺輸入方式映之,方便以后的編程題: java鍵盤輸入 java讀文件(會自...
- 總結一下常見的排序算法据忘。 排序分內排序和外排序鹦牛。內排序:指在排序期間數(shù)據(jù)對象全部存放在內存的排序。外排序:指在排序...