Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- /* run this program using the console pauser or add your own getch, system("pause") or input loop */
- int *tw_tab (int r){
- int i;
- int *wsk;
- wsk=malloc(r*sizeof(int));
- for (i=0;i<r;i++){
- printf("t[%d]=",i+1);
- scanf("%d",&wsk[i]);
- }
- return wsk;
- }
- void BubbleSort(int *tab,int n){
- int i,j,temp;
- for(j=n-1;j>0;j--){
- for(i=0;i<j;i++){
- if(tab[i]>tab[i+1]){
- temp=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=temp;
- }
- }
- }
- }
- void InsertSort(int *tab,int n) {
- int i,temp,j;
- for (i=0;i<n;i++){
- temp = tab[i];
- j=i-1;
- while (temp<=tab[j] && j>=0){
- tab[j+1]=tab[j];
- j--;
- } tab[j+1]=temp;
- }
- }
- void SelectionSort(int *tab,int n)
- {
- int i,j,temp;
- int max;
- for (i=n;i>0;i--){
- max=tab[i];
- for (j=0;j<=i;j++)
- {
- if (tab[j]>max){temp=max;max=tab[j];tab[j]=temp;}
- }tab[i]=max;
- }
- }
- void QuickSort(int *tab,int p,int k){
- int x=tab[p];
- int i,j,temp;
- i=p;
- j=k;
- do
- {
- while (tab[i] < x) i++;
- while (tab[j] > x) j--;
- if (i<=j){
- temp=tab[i];
- tab[i]=tab[j];
- tab[j]=temp;
- ++i;
- --j;
- }
- }while(i<j);
- if(p<j) QuickSort(tab,p,j);
- if(k>i) QuickSort(tab,i,k);
- }
- void bisekcja(int *tab,int sz, int l,int p){
- int sr=(l+p)/2;
- if(sz==tab[sr]) printf("szukany element znajduje się w tablicy na miejscu %d \n",sr+1);
- else if(sz>tab[sr] && l<p){bisekcja(tab,sz,sr+1,p);}
- else if(sz<tab[sr] && l<p)bisekcja(tab,sz,l,sr-1);
- else printf("szukanego elementu niema w tablicy :( \n");
- }
- void flaga(int *tab, int n){
- int i=0;
- int j=n-1;
- int pom;
- int a;
- int b;
- while (i<=j) {
- while (tab[i]==0 && i<j) i++;
- while (tab[j]==1 && i<j) j--;
- pom=tab[i];
- tab[i]=tab[j];
- tab[j]=pom;
- i++;
- j--;
- }
- }
- void swaap (int a, int b){
- int x;
- x=a;
- a=b;
- b=x;
- }
- void flaga3(int *tab, int n){
- int n1=0;
- int n2=1;
- int n3=n;
- int a,b;
- int p;
- int x;
- while(n2<n3)
- {
- p=tab[n2];
- if (p==0)
- {
- n1++;
- x=tab[n1];
- tab[n1]=tab[n2];
- tab[n2]=x;
- n2++;
- }
- else if (p==1) n2++;
- else {
- n3--;
- x=tab[n2];
- tab[n2]=tab[n3];
- tab[n3]=x;
- }
- }
- }
- int main(int argc, char *argv[]) {
- int n,temp;
- printf("ile elementów chcesz wprowadzić i posortować ");
- scanf("%d",&n);
- int *tab_wsk;
- tab_wsk=tw_tab(n);
- //BubbleSort(tab_wsk,n);
- //InsertSort(tab_wsk,n);
- //SelectionSort(tab_wsk,n);
- //QuickSort(tab_wsk,0,n);
- //int zn;
- //printf("podaj szukany element");
- //scanf("%d",&zn);
- //bisekcja(tab_wsk,zn,0,n);
- int i;
- flaga3(tab_wsk,n);
- for(i=0;i<n;i++)
- {
- printf("%d \n",tab_wsk[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement