85 lines
1.6 KiB
C
85 lines
1.6 KiB
C
#include <iso646.h>
|
|
#include <stdbool.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
// Variables
|
|
const int size=8;
|
|
int *alloc_tab(){
|
|
int *tab=NULL;
|
|
tab=malloc(sizeof(int)*size);
|
|
tab[0]=1;
|
|
tab[1]=2;
|
|
tab[2]=4;
|
|
tab[3]=5;
|
|
tab[4]=6;
|
|
tab[5]=7;
|
|
tab[6]=9;
|
|
tab[7]=10;
|
|
return tab;
|
|
}
|
|
|
|
bool dict_sort(int tab[], int cible) {
|
|
// Définition et Assignation des variables
|
|
int pointer = 1;
|
|
int intervale= size;
|
|
int pivot;
|
|
bool trouve=false;
|
|
|
|
while (pointer<=intervale && trouve==false) {
|
|
printf("Pointer: %d, Intervalle: %d, Pivot: %d \n ",pointer , intervale, pivot);
|
|
pivot = (pointer+intervale)/2;
|
|
if (tab[pivot]==cible) {
|
|
trouve=true;
|
|
}
|
|
else {
|
|
if (cible<tab[pivot]) {
|
|
intervale=pivot-1;
|
|
}
|
|
else {
|
|
pointer=pivot+1;
|
|
}
|
|
}
|
|
}
|
|
if (trouve==true) {
|
|
printf("Found !");
|
|
}
|
|
else {
|
|
printf("Not found !");
|
|
}
|
|
return trouve;
|
|
}
|
|
|
|
void insert(int tab[], int position, int element) {
|
|
int i = position;
|
|
while (i>0 && tab[i]>element) {
|
|
tab[i+1]=tab[i];
|
|
i=i-1;
|
|
}
|
|
tab[i+1]=element;
|
|
}
|
|
|
|
void sortinsert(int tab[]) {
|
|
int i;
|
|
for (i=2; i<=size; i++) {
|
|
insert(tab, i-1, tab[i]);
|
|
}
|
|
}
|
|
|
|
int permutation(int tab[], int premier, int deuxieme) {
|
|
int temp;
|
|
|
|
temp=tab[premier];
|
|
tab[premier]=tab[deuxieme];
|
|
tab[deuxieme]=temp;
|
|
printf("%d ",tab);
|
|
return tab;
|
|
}
|
|
int main(void) {
|
|
int* tab=alloc_tab();
|
|
//dict_sort(tab, 5);
|
|
sortinsert(tab);
|
|
free(tab);
|
|
return 0;
|
|
}
|