一个线性表中的元素为正整数或负整数。设计一个算法,将正整数和负整数分开,使线性表前一半为负整数,后一半为正整数。不要求对这些元素排序,但要求尽量减少交换次数。
本题的算法思想是先设置好上、下界,然后分别从表的两端查找正数和负数,找到后进行交换,直到上、下界相遇。 void example(DataType A[],int n) { int i=0,j=n一1,temp; //i,J为左、右边界 while(i
一个线性表中的元素为正整数或负整数。设计一个算法,将正整数和负整数分开,使线性表前一半为负整数,后一半为正整数。不要求对这些元素排序,但要求尽量减少交换次数。
本题的算法思想是先设置好上、下界,然后分别从表的两端查找正数和负数,找到后进行交换,直到上、下界相遇。 void example(DataType A[],int n) { int i=0,j=n一1,temp; //i,J为左、右边界 while(i