For some reason bubble sort is not working. Can someone help.
binary search bool search (int target, int array[],int length)
{
int end = length-1; int start = 0;
while (array[start] <= array[end])
{
// 7 0 14
// 11 8 14
// 13 12 + 14
// 14 14 14
//
// 9 10 + 8 =
// 8 + 8
int middle = (start + end)/2;
if (array[middle] == target)
{
return true;
} //13.5 7
// 13.5 11
//13.5 13
if ( target > array[middle] )
{ // 8 7+1
// 12 11+1
// 14 13+1
start = middle+1;
// 8 13.5
// 12 13.5
if (array[start] == target)
{
return true;
}
} // 13.5 14
else if(target < array[middle])
{
// 13 14 - 1
//
end = middle - 1;
if (array[end] == target)
{
return true;
}
}
}
return false;
}
I realize bubble sort is really inefficient code. The code won't work . The parts I can identity is printf( "%d" , array[total]); and break; Will break work the way I set it up? Here is a few steps.
I just realized I don't even need this part. //reverses left and right back to correct order so right is not before left // 1 = 2 left = right; right = left + 1;
r
l
// ex array[total] = {2,5,3,1,4}
l
r
// ex array[total] = {2,1,3,5,4}
The next time I run the loop array[right] and array[left] will array[total] eventually change to {1 2 3 4 5}
//bubble sort
void sort (int array[], int total ) { // ex array[total] = {2,5,3,1,4} int end = total - 1; int left = 0; int min = 0; int right
= left + 1;
while ((left <= total) || (min <= total))
{
if( array[left] > array[right] )
{//switches array[left] and array[right]
//5 3
array[left] = array[right];
// 5 [2]-[1]
array[right] = array[left]-1;
printf( "%d %d" ,array[left] ,array[right]);
//reverses left and right back to correct order so right is not before left
// 1 = 2
left = right;
right = left + 1;
}
// maybe top block
if (right == end)
{
min++;
left = 0;
right = left +1;
}
if (min == end)// does total need to be end
{
printf( "%d" , array[total]);
break;
}
left++;
right = left + 1;
}
}
Did I make any other mistakes in bubble sort?
:) helpers.c exists.
:) helpers.c compiles.
:( sorts {5,4,3,2,1}
expected "2", not "\n"
:( sorts {5,3,1,2,4,6}
expected "3", not "\n4\n6\n"
:( finds 28 in {28,29,30}
expected exit code 0, not 1
:( finds 28 in {27,28,29}
expected exit code 0, not 1
:( finds 28 in {26,27,28}
expected exit code 0, not 1
:( finds 28 in {27,28,29,30}
expected exit code 0, not 1
:( finds 28 in {26,27,28,29}
expected exit code 0, not 1
:( finds 28 in {25,26,27,28}
expected exit code 0, not 1
:) doesn't find 28 in {25,26,27}
:) doesn't find 28 in {25,26,27,29}
:) doesn't find 28 in {29,30,31,32}
:) doesn't find 28 in {29, 30, 31}
:( finds 28 in {30,27,28,26}
expected exit code 0, not 1