コード例 #1
0
ファイル: compareMain.c プロジェクト: xudifsd/lab
int main()	//this program is used to test the speed of bubbleSort , selectSort , shellSort , insertSort
{
int a[100]={-100,10,4,2,342,2111,0,-2,31121,3131,1,212,12,313,423,54,8658,4,54,32,-223,424,-535,-555,-33,34,5,3,0,33,5332,-3333333,333333,434,532225,5600,33232,53333,-3323,0,0,22332,3235532,44,45,46,47,48,49,50,4142,3213,21213,12,2424,532,-343,31232,1233214,421245,3232432,1231312,42,0,42,4222,3,-424242424,4222,78900,776,72,73,74,454,64343,2234,113,1244,242,4333553,23432,83,49902,3323,-2324,-42442,-323,89,90,3333,323,44,2,2222,323,97,98,99,100};
int b[100]={-100,10,4,2,342,2111,0,-2,31121,3131,1,212,12,313,423,54,8658,4,54,32,-223,424,-535,-555,-33,34,5,3,0,33,5332,-3333333,333333,434,532225,5600,33232,53333,-3323,0,0,22332,3235532,44,45,46,47,48,49,50,4142,3213,21213,12,2424,532,-343,31232,1233214,421245,3232432,1231312,42,0,42,4222,3,-424242424,4222,78900,776,72,73,74,454,64343,2234,113,1244,242,4333553,23432,83,49902,3323,-2324,-42442,-323,89,90,3333,323,44,2,2222,323,97,98,99,100};
int c[100]={-100,10,4,2,342,2111,0,-2,31121,3131,1,212,12,313,423,54,8658,4,54,32,-223,424,-535,-555,-33,34,5,3,0,33,5332,-3333333,333333,434,532225,5600,33232,53333,-3323,0,0,22332,3235532,44,45,46,47,48,49,50,4142,3213,21213,12,2424,532,-343,31232,1233214,421245,3232432,1231312,42,0,42,4222,3,-424242424,4222,78900,776,72,73,74,454,64343,2234,113,1244,242,4333553,23432,83,49902,3323,-2324,-42442,-323,89,90,3333,323,44,2,2222,323,97,98,99,100};
int d[100]={-100,10,4,2,342,2111,0,-2,31121,3131,1,212,12,313,423,54,8658,4,54,32,-223,424,-535,-555,-33,34,5,3,0,33,5332,-3333333,333333,434,532225,5600,33232,53333,-3323,0,0,22332,3235532,44,45,46,47,48,49,50,4142,3213,21213,12,2424,532,-343,31232,1233214,421245,3232432,1231312,42,0,42,4222,3,-424242424,4222,78900,776,72,73,74,454,64343,2234,113,1244,242,4333553,23432,83,49902,3323,-2324,-42442,-323,89,90,3333,323,44,2,2222,323,97,98,99,100};

double start,end;int i;
start=(double)clock();
bubbleSort(a,100);
end=(double)clock();
printf("bubbleSort time is %.2f\n",(end-start)/1000);

start=(double)clock();
selectSort(b,100);
end=(double)clock();
printf("selectSort time is %.2f\n",(end-start)/1000);

start=(double)clock();
shellSort(c,100);
end=(double)clock();
printf("shellSort time is %.2f\n",(end-start)/1000);

start=(double)clock();
insertSort(d,100);
end=(double)clock();
printf("insertSort time is %.2f\n",(end-start)/1000);

start=(double)clock();
quickSort(d,100);
end=(double)clock();
printf("quickSort time is %.2f\n",(end-start)/1000);

}
コード例 #2
0
ファイル: sort_test.cpp プロジェクト: blueyi/Algorithms
int main(void)
{
    std::vector<int> rdata = random_int(15);
    print(rdata, std::cout, '=', "Original arr");

    std::vector<int> trdata = rdata;
    bubbleSort(trdata);
    print(trdata, std::cout, '=', "bubble sort");

    trdata = rdata;
    insertSort(trdata);
    print(trdata, std::cout, '=', "insert sort");

    trdata = rdata;
    selectSort(trdata);
    print(trdata, std::cout, '=', "select sort");

    trdata = rdata;
    mergeSort(trdata);
    print(trdata, std::cout, '=', "merge sort");

    trdata = rdata;
    quickSort(trdata);
    print(trdata, std::cout, '=', "quick sort");

    return 0;
}
コード例 #3
0
int main() {
	int v[] = {7,13,10,2,5,8,1};
	int n = 7;
	int i;
	for(i=0;i<n;i++) printf("%d ", v[i]);
	printf("\n");
	selectSort(v,n);
	for(i=0;i<n;i++) printf("%d ",v[i]);
}
コード例 #4
0
int main(){
	int data[10] = {9,6,3,2,5,8,4,7,1,0};
	int i;
	selectSort(data,10);
	for(i = 0; i < 10; i ++)
		printf("%d ",data[i]);
	printf("\n");
	return 0;
}
コード例 #5
0
ファイル: readAndSort.c プロジェクト: demon90s/LearnLinux
int main()
{
    FILE *fp1 = fopen("a.txt", "r");

    if (!fp1)
    {
        printf("error:%s\n", strerror(errno));

        return -1;
    }
    else
    {
        char buf[128];//存放从文件中读入的一行文本
        memset(buf, 0, sizeof(buf));

        int i = 0;//存放读入行号次数,即数字的个数
        int a[100] = {0};//存放要排序的数字

        while(fgets(buf, sizeof(buf), fp1))//每次读取一行,将其转换成整数存放到数组中
        {
            a[i++] = atoi(buf);

            memset(buf, 0, sizeof(buf));
        }

        fclose(fp1);

        selectSort(a, i);//排序

        FILE *fp2 = fopen("b.txt", "w");

        if (!fp2)
        {
            printf("error:%s\n", strerror(errno));

            return -1;
        }
        else
        {
            int n = 0;
            for (; n < i; n++)
            {
                char buf[128];
                memset(buf, 0, sizeof(buf));

                sprintf(buf, "%d\n", a[n]);//将数字存放到buf中,然后写入文件

                fputs(buf, fp2);
            }

            fclose(fp2);
        }
    }

    return 0;
}
コード例 #6
0
ファイル: selectSort.c プロジェクト: kathyuanxing/Algorithms
//select sort
void main()
{
    int a[10],i;
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    selectSort(a,10);
    printf("sorted :\n");
    for(i=0;i<10;i++)
        printf(" %d",a[i]);
}
コード例 #7
0
ファイル: main.c プロジェクト: chenyufeng1991/SelectSort
int main(int argc, const char * argv[]) {


    int a[] = {6,1,4,9,0,3};
    selectSort(a,6);
    for (int i = 0; i < 6 ; i++) {
        printf("%d ",a[i]);
    }

    return 0;
}
コード例 #8
0
ファイル: selectSort_test01.c プロジェクト: nashera/Recipe
int main(int argc, char const *argv[])
{
	int a[] = {2, 1, 3, 5, 7, 6, 8, 9, 10, 2, 4};
	selectSort(a, sizeof(a) / sizeof(int));

	for (unsigned int i = 0; i < sizeof(a) / sizeof(int); ++i)
	{
		printf("%d\t", *(a + i));
	}
	printf("\n");
	return 0;
}
コード例 #9
0
ファイル: test.c プロジェクト: phil0s0pher/CS232L_Lab1
void testSelectSort() {
	int sortArray1[]={3,5,8,9};
	int sortArray2[]={-5,-2,5,10,20};
	int sortArray3[]={2,3,5,5};
	int disOArray[]={5,9,8,3};
	int revOArray[]={9,8,5,3};
	int negArray[]={-5,5,10,-2,20};
	int repArray[]={5,2,3,5};

	printf("Test selectSort\n");

	printf("Test Disordered Array.\n");
	assert(memcmp(selectSort(disOArray,4),sortArray1,sizeof(disOArray))==0);

	printf("Test Reverse Ordered Array.\n");
	assert(memcmp(selectSort(revOArray,4),sortArray1,sizeof(revOArray))==0);

	printf("Test Negatives in Array.\n");
	assert(memcmp(selectSort(negArray,5),sortArray2,sizeof(negArray))==0);

	printf("Test Empty Array.\n");
	assert(selectSort(NULL,1)==NULL);

	printf("Test Repeats in Array.\n");
	assert(memcmp(selectSort(repArray,4),sortArray3,sizeof(repArray))==0);

	printf("Test Ordered Array.\n");
	assert(memcmp(selectSort(sortArray1,4),sortArray1,sizeof(sortArray1))==0);
	
	printf("Tests Passed\n");
}
コード例 #10
0
ファイル: P10-04.C プロジェクト: jhyun0919/Coding_jhyun
int main (void)
{
/*	Local Definitions */
	int  ary[SIZE];
	int *pLast;

/*	Statements */
	pLast = getData (ary, SIZE);
	selectSort      (ary, pLast);
	printData       (ary, pLast);

	return 0;
}	/* main */
コード例 #11
0
ファイル: SelectSort.c プロジェクト: mambabin/PracticalCode
int main(int argc, char const *argv[])
{
	int arr[N], index;
	srand(time(NULL));
	for(index = 0; index < N; ++index)
	{
		arr[index] = rand() % 100 + 1;
	}

	show(arr, N);
	selectSort(arr, N);
	show(arr, N);

	return 0;
}
コード例 #12
0
int main()
{	
    int N = 7;
    int i;
    int *a = malloc(N * sizeof(int));
    for (i = 0; i < N; i++) {
        int s;
        klee_make_symbolic(&s, sizeof(s), "s");
        a[i] = s;
    }
    //int a[] = {0, 0, 0};
    selectSort(a, N);
    free(a);
    return 0;
}
コード例 #13
0
ファイル: selectSort.c プロジェクト: xuwening/code-snippet
//╡Бйт
int main()
{
	int i;
	int databuf[] = {10,  5, 6, 1, 0, 8, 11, 23, 14};

	selectSort(databuf, sizeof(databuf)/sizeof(int));

	for (i=0; i<sizeof(databuf)/sizeof(int); i++)
	{
		printf("%d  ", databuf[i]);
	}

	getchar();
	return 0;
}
コード例 #14
0
ファイル: selectSort_test01.c プロジェクト: nashera/Recipe
void selectSort(int *a, int length){
	int min = *a;
	int ix = 0;
	for (int i = 0; i < length; ++i){
		if (*(a + i) < min)
		{
			min = *(a + i);
			ix = i;
		}
	}
	if(ix != 0){
		swap(a, a + ix);
	}
	if (length > 0)
	{
		selectSort(a + 1, length -1);
	}
}
コード例 #15
0
ファイル: main.c プロジェクト: joyhub2140/iOS-dev
int main(int argc, const char * argv[]) {
    
    int a[10];
    randomArrayGeneration(a, 10, 100);
    
    //bubbleSort(a, 0, 9);
    //bubbleSortWithFlag(a, 0, 9);
    //insertSort(a, 0, 9);
    //shellSort(a, 0, 9);
    selectSort(a, 0, 9);
    //quickSort(a, 0, 9);
    
    for (int i = 0; i < 10; i ++) {
        printf("%d, ", a[i]);
    }

    return 0;
}
コード例 #16
0
ファイル: main.cpp プロジェクト: walleri18/Offset-programming
int main(void)
{
	setlocale(LC_ALL, ".1251");// Русификация

	// Создание входящего потока и его открытие
	ifstream inStream("readme.txt");

	// Проверка на открытие файла
	if (!inStream.is_open()) {
		cout << "Ошибка открытия файла file.txt" << endl;
		system("pause");
		exit(1);
	}

	// Создание динамического массива NOTE
	NOTE *notes = new NOTE[8];

	char tmpSurname[200];// Временная переменная фамилии
	int tmpPhoneNumber(0);// Временная переменная номера телефона
	int tmpBirthday[3] = { 0 };// Временная переменная даты рождения
	char tmpSeparator(' ');// Символ разделяющий дату рождения

	// Цикл чтения из файла
	for (int i = 0; i < 8; i++)
	{
		// Считывание данных во временные переменные
		inStream >> tmpSurname >> tmpPhoneNumber >> tmpBirthday[0] >> tmpSeparator >> tmpBirthday[1] >> tmpSeparator >> tmpBirthday[2];

		// Создание временного объекта NOTE
		NOTE tmpNote(tmpSurname, tmpPhoneNumber, tmpBirthday[0], tmpBirthday[1], tmpBirthday[2]);

		// Вставка временного объекта в массив notes
		notes[i] = tmpNote;
	}

	// Закрываем поток
	inStream.close();

	/*
		Вывод массива до сортировки
	*/
	cout << endl << "Вывод массива до сортировки: " << endl << endl;

	for (int i = 0; i < 8; i++)
		notes[i].show();

	// Сортируем массив NOTE
	selectSort(notes, 8);

	/*
		Вывод массива после сортировки
	*/
	cout << endl << "Вывод массива после сортировки: " << endl << endl;

	for (int i = 0; i < 8; i++)
		notes[i].show();

	// Ввод месяца
	cout << "Введите пожалуйста фамилию для сравнения: ";
	cin >> tmpSurname;

	// Преобразование символов из иероглифов в русскую раскладку
	OemToCharA(tmpSurname, tmpSurname);

	// Очистка экрана
	system("cls");

	// Поиск информации
	for (int i = 0, count = 0; i <= 8; i++)
	{
		// Если пройдясь по всем записям и не нашлось ни одного совпадения
		if ((i == 8) && count == 0)
			cout << "Нет соответствующей записи" << endl;

		// Если прошлись по всем записям и нашлись совпадения
		else if (i == 8 && count != 0)
			break;

		// Если не закончились записи, ищем совпадения
		else if (notes[i] == tmpSurname) {
			
			// Вывод
			notes[i].show();

			// Увеличение счётчика
			count++;
		}
	}

	// Приостановка программы для просмотра результата
	system("pause");

	return NULL;// Передача управления операционной системе
}
コード例 #17
0
ファイル: graycode.cpp プロジェクト: BPKim/Coding_Test_in_Cpp
int main(){

	int testcase =0;
	int i, j=0, n, m;
	int N, M;
	double double **table;
	double double *resultTable;
	double double result;
	double double *low_point_table;
	double double lowpoint;

	scanf("%d", &testcase);
	scanf("%d %d", &N, &M);

	for (i = 0 ; i < testcase; i++){
		
		resultTable = (double double*)malloc(sizeof(double double)*M);

		for (m = 0; m < M; m++){
			resultTable[m] = 0;
			
		}

		table = (double double**)malloc(sizeof(double double)*N);
		for ( n = 0; n < N; n ++)
			table[n] = (double double*)malloc(sizeof(double double)*(M * 2));

		for (n = 0; n < N; n++){
			for (m = 0; m < M*2; m++)
				scanf("%d", &table[n][m]);
		}

	
	
		for (n = 0; n < N; n++){
			for (m = 0; m < M * 2; m++){
				if (m % 2 != 1){
					resultTable[j] += table[n][m];
					//	printf(" %d += %d ", resultTable[j], table[n][m]);
				}
				else{
					resultTable[j] -= table[n][m];
					j++;
						//printf(" %d -= %d ", resultTable[j], table[n][m]);
				}
			}
			j = 0;
			//printf("\n");
		}

		/// 포인트 가장 작은거 찾아서 더하기만 하면 됨 
		for (m = 1; m < M * 2; m=m+2){
			low_point_table = (double double*)malloc(sizeof(double double)*N);

			for (n = 0; n < N; n++){
				low_point_table[n] = table[n][m];
			}
			lowpoint = selectSort(low_point_table, N);
			//printf("%d  ", lowpoint);
			resultTable[j] += lowpoint;
			
			j++;
			free(low_point_table);
		}

		result = selectSort(resultTable, M);
		
		printf("%d", result);
	}
	return 0;
}
コード例 #18
0
ファイル: Sort.c プロジェクト: chenzhongtao/mysource
int test_algorithm()
{
	int len[]={1, 2, 10, 100, 200, 300, 400, 500, 600, 1000};
	int num=sizeof(len) / sizeof(int);
	int i, j, *number_rand, *number_order, *temp, *number_test;

	for(i = 0; i < num; i++)
	{
		number_rand = calloc(sizeof(int), len[i]);
		number_order = calloc(sizeof(int), len[i]);
		number_test = calloc(sizeof(int), len[i]);
		temp = calloc(sizeof(int), len[i]);
		for (j = 0; j<len[i]; j++)
		{
			*(number_rand + j) = rand() * 1000 + rand();
			*(number_order + j) = j;
		}
		memcpy(number_test, number_rand, sizeof(int) * len[i]);
		quickSort(number_test, 0, len[i] - 1);
		test_array(number_test, len[i], "quickSort");
		
		memcpy(number_test, number_order, sizeof(int) * len[i]);
		quickSort(number_test, 0, len[i] - 1);
		test_array(number_test, len[i], "quickSort");
		
		memcpy(number_test, number_rand, sizeof(int) * len[i]);
		mergeSort(number_test, 0, len[i]-1, temp);
		test_array(number_test, len[i], "mergeSort");
		
		memcpy(number_test, number_order, sizeof(int) * len[i]);
		mergeSort(number_test, 0, len[i]-1, temp);
		test_array(number_test, len[i], "mergeSort");
		
		memcpy(number_test, number_rand, sizeof(int) * len[i]);
		insertSort(number_test, len[i]);
		test_array(number_test, len[i], "insertSort");
		
		memcpy(number_test, number_order, sizeof(int) * len[i]);
		insertSort(number_test, len[i]);
		test_array(number_test, len[i], "insertSort");
		
		memcpy(number_test, number_rand, sizeof(int) * len[i]);
		ShellSort(number_test, len[i]);
		test_array(number_test, len[i], "ShellSort");
		
		memcpy(number_test, number_order, sizeof(int) * len[i]);
		ShellSort(number_test, len[i]);
		test_array(number_test, len[i], "ShellSort");
		
		memcpy(number_test, number_rand, sizeof(int) * len[i]);
		bubbleSort(number_test, len[i]);
		test_array(number_test, len[i], "bubbleSort");
		
		memcpy(number_test, number_order, sizeof(int) * len[i]);
		bubbleSort(number_test, len[i]);
		test_array(number_test, len[i], "bubbleSort");
		
		memcpy(number_test, number_rand, sizeof(int) * len[i]);
		selectSort(number_test, len[i]);
		test_array(number_test, len[i], "selectSort");
		
		memcpy(number_test, number_order, sizeof(int) * len[i]);
		selectSort(number_test, len[i]);
		test_array(number_test, len[i], "selectSort");
		
		memcpy(number_test, number_rand, sizeof(int) * len[i]);
		heapSort(number_test, len[i]);
		test_array(number_test, len[i], "heapSort");
		
		memcpy(number_test, number_order, sizeof(int) * len[i]);
		heapSort(number_test, len[i]);
		test_array(number_test, len[i], "heapSort");
		
		memcpy(number_test, number_rand, sizeof(int) * len[i]);
		binSort(number_test, len[i]);
		test_array(number_test, len[i], "binSort");
		
		memcpy(number_test, number_order, sizeof(int) * len[i]);
		binSort(number_test, len[i]);
		test_array(number_test, len[i], "binSort");

	}
	printf("test algorithm finish\n");
	free(number_rand);
	free(number_order);
	free(temp);
	free(number_test);
}
コード例 #19
0
ファイル: sort.c プロジェクト: gmyofustc/CS-notes
int main()
{
    //本例中所有的排序都是升序
    int a[] = {10, 2, 3,56, 25, 1, 1, 45, 45, 78, 10};
    int b[] = {2, 3, 5, 6};
    printf("The orginal sequence:\n");
    int num = sizeof(a)/sizeof(int);
    print(a, num);

#if 0   // for bubble sort
    printf("The ordered sequence by bubbleSort:\n");
    bubbleSort2(a, num);
    print(a, num);

#endif

#if 0   // for select sort

    printf("The ordered sequence by insertSort:\n");
    selectSort(a, num);
    print(a, num);

#endif

#if 0   // for insert sort

    printf("The ordered sequence by insertSort:\n");
    insertSort(a, num);
    print(a, num);

#endif

#if 0   // for shell sort

    printf("The ordered sequence by shellSort:\n");
    shellSort(a, num);
    print(a, num);

#endif



#if 0   // for quick sort

    printf("The ordered sequence by quickSort:\n");
    quickSort(a, num);
    print(a, num);

#endif

#if 0   // for binary searh tree sort

    Tree *root = create(a, num);
    printf("The ordered sequence by binary search tree:\n");
    printTree(root);
    printf("\n");
    freeTree(root); //函数中申请的动态内存,也需要显式地释放

#endif

#if 0   // for merge sort

    printf("The ordered sequence by mergeSort:\n");
    mergeSort(a, num);
    print(a, num);

#endif

#if 1   // for heap sort

    printf("The ordered sequence by heapSort:\n");
    heapSort(a, num);
    print(a, num);

#endif


   


    return 0;
}
コード例 #20
0
ファイル: insertSort.cpp プロジェクト: studio501/filePro
void testInsertSort()
{
	myRDT d[N]={{49,1},{38,2},{65,3},{97,4},{76,5},{13,6},{27,7},{49,8}};
	mySQLIST l1,l2,l3,l4,l5,l6,l7,l8,l9;
	int i ;
	for(i=0;i<N;++i)
		l1.r[i+1]=d[i];
	l1.length=N;
	l2=l3=l1;
	l5=l1;
	l6=l1;
	l7=l1;
	l8=l1;
	l9=l1;
	printf("еепРг╟:\n");
	print(l1);
	insertSort(l1);
	printf("ж╠╫с╡ЕхКеепР╨С:\n");
	print(l1);
	BInsertSort(l2);
	printf("уш╟К╡ЕхКеепР╨С:\n");
	print(l2);
	printf("2_б╥╡ЕхКеепР╨С:\n");
	p2_insertSort(l3);
	print(l3);

	mySLKT sl1,sl2;
	int *adr;
	tableInsert(sl1,d,N);
	sl2=sl1;
	printf("еепРг╟:\n");
	print2(sl1);
	arrange(sl1);
	printf("l1еепР╨С:\n");
	print2(sl1);
	adr=(int *)malloc((sl2.length+1)*sizeof(int));
	sort(sl2,adr);
	for(i=1;i<=sl2.length;++i)
		printf("adr[%d]=%d ",i,adr[i]);
	printf("\n");
	rearrange(sl2,adr);
	printf("l2еепР╨С:\n");
	print2(sl2);

	int dt[]={5,3,1};
	for(i=0;i<N;++i)
		l4.r[i+1]=d[i];
	l4.length=N;
	printf("еепРг╟: \n");
	shellSort<int>(l4,dt,3,print);
	printf("еепР╨С: ");
	print(l4);

	int d1[N]= {1,2,4,5,6,77,88,99}; //{49,38,65,97,76,13,27,49};
	printf("еепРг╟:\n");
	print3(d1,N);
	printf("еепР╨С:\n");
	bubble_sort(d1,N,print3);

	printf("©ЛкыеепР╨С: \n");
	quickSort(l5);
	print(l5);

	printf("я║тЯеепР╨С: \n");
	selectSort(l6);
	print(l6);

	printf("йВпня║тЯеепР╨С: \n");
	treeSort(l7);
	print(l7);

	printf("╤яеепР╨С: \n");
	heapSort(l8);
	print(l8);

	printf("╧И╡╒еепР╨С: \n");
	mergeSort(l9);
	print(l9);

	myRDT d3[N+2]={{278,1},{109,2},{63,3},{930,4},{589,5},{184,6},{505,7},{269,8},{8,9},{83,10}};
	mySLLIST l10;
	int *adr1;
	intiList1_(l10,d3,N+2);
	printf("еепРг╟(nextсР╩╧ц╩╦Ёж╣):\n");
	print5(l10);
	radixSort<int>(l10,print4);
	printf("еепР╨С(╬╡л╛а╢╠М):\n");
	print5(l10);
	adr1=(int*)malloc(l10.recnum*sizeof(int));
	sSort(l10,adr1);
	sRearrange(l10,adr1);
	printf("еепР╨С(жьее╪гб╪):\n");
	print5(l10);
}