[英]Bubble sort, but sorting only even placed numbers ascending and leaving odd placed elements in c
我的問題是打印使用冒泡排序升序排列的數字,例如排序后的{4、1、2、1}應該是{2、1、4、1}。 我有冒泡排序的代碼
for (i=0; i<size-1; i++)
{
d=0;
for (j=0; j<size-1-i; j++)
{
if (array[j] > array[j+1])
{
temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
d++;
}
}
if(d==0)
break;
}
我試圖改變 [] 和 'i' 中的值,但它給了我奇怪的數字。 大小是數組的大小。
for (i=0; i<size-1; i+=2)
{
d=0;
for (j=0; j<size-1-i; j++)
{
if (array[j] > array[j+1])
{
temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
d++;
}
}
if(d==0)
break;
}
這是我做過的最好的嘗試,但它給出了 1 2 1 4 所以我試圖改變 j 但它沒有給出結果。
想想你的算法步長為 2;
size - 2
以避免越界 RWi+=2
if (array[j] > array[j+2])
.
for (i=0; i<size-2; i+=2)
{
d=0;
for (j=0; j<size-2-i; j+=2)
{
if (array[j] > array[j+2])
{
temp = array[j+2];
array[j+2] = array[j];
array[j] = temp;
d++;
}
}
if(d==0)
break
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.