题目
有一个顺序表L,其元素为整形数据,设计一个算法,将L中的所有小于表头元素的整数放在前半部分,大于表头元素的整数放在后半部分
解答(天勤)
/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <iostream>
using namespace std;
void divide (int arr[],int n)
{
int temp;
int i = 0, j = n-1;
temp = arr[i];
while(i<j)
{
while(i<j && arr[j]>temp) --j;
if(i<j)
{
arr[i] = arr[j];
i++;
}
while(i<j & arr[i]<temp) ++i;
if(i<j)
{
arr[j] = arr[i];
j--;
}
arr[i] = temp;
}
}
int main()
{
int arr[5] = {2,3,-1,0,5};
divide(arr,5);
for(int i=0;i<5;i++)
cout << arr[i] <<endl;
cout<<"Hello World";
return 0;
}