You should describe your platform and objectives with a lot more detail if you want a helpful answer. (Operating system, disk speeds, all that sort of thing).
It's not really clear what you mean by "Is it okay...?" Okay in what sense? If you really just mean "can it be done?" then the answer is technically "yes."
If you mean "is this a reasonably functional use of RAID0?" then the answer is a definite "no." Don't do this. he effective read/write speed is not just based on the number of physical disks in the array, it also depends on the speed of the disks. Calculating the actual performance of the array is complicated if all your disks don't match exactly, though.
All RAID0 is really doing is assigning different portions of data to different disks, but it does it at a fixed size.
Say you have 1GB of data you want to write. The array does not give the first 1/4 to the first disk, the second 1/4 to the next, and so on. The data will be broken up into small pieces and handed off one piece at a time to the next disk in the sequence.
If the "next disk" is not a different physical disk but another partition on the same disk, the HDD has to adjust where it is writing to a very different location each time, and then adjust back. This is much slower than if you just used a simple partition on the disk. The 16GB drive will act as if it is very slow, and the whole array will be dragged down.
You can think of this strategy as introducing a constant high degree of fragmentation on the 16GB disk for no benefit.
If what you really want is to use all three of these drives as one shared as-fast-as-possible volume, you could create a RAID0 array from the two matching drives and then used LVM to combine that 16GB with the 16GB drive. Bear in mind that a single drive failing will not leave you with the rest of your data untouched. Expect to lose everything if even one drive fails.