查詢有序序列中 重複 不存在 的數演算法

2021-06-16 18:24:06 字數 2022 閱讀 7406

/*

* 查詢有序序列中 重複/不存在 的數演算法演示

*/#include #include #include #define func_in() printf("\nin %s\n\n", __function__)

#define func_out() printf("\nout %s\n\n", __function__)

/* 生成乙個長度為len的陣列, 其中array[i] = i(0<=ivoid generate_array(int array, int len);

/* 向長度為len的有序陣列中新增乙個元素x(0<=xvoid add_to_array(int array, int len, int x);

/* 刪除長度為len的有序陣列中的乙個元素x(0<=xvoid del_from_array(int array, int len, int x);

/* 列印乙個陣列 */

void display_array(int array, int len);

/* 查詢乙個長度為len的有序陣列中哪個元素不存在 */

int find_not_exist(int array, int len);

/* 查詢乙個長度為len的有序陣列中哪個元素重複了 */

int find_duplicate(int array, int len);

int main(int argc, char *argv)

/* 申請記憶體的時候多申請乙個元素 */

if ((array = (int *)malloc((count + 1) * sizeof(int))) == null)

/* 首先生成乙個元素都是有序的整型陣列 */

generate_array(array, count);

display_array(array, count);

/* 刪除其中的乙個元素 */

del_from_array(array, count, rand() % count);

display_array(array, count);

/* 查詢不存在的元素 */

int x = find_not_exist(array, count);

printf("the element not exist is %d\n", x);

/* 把刪除的元素補上 */

add_to_array(array, count + 1, x);

/* 新增乙個重複的元素 */

add_to_array(array, count + 1, rand() % count);

display_array(array, count + 1);

/* 查詢重複的元素 */

printf("the element duplicate is %d\n", find_duplicate(array, count + 1));

free(array);

return 0;

}void generate_array(int array, int len)

}void add_to_array(int array, int len, int x)

/* x + 1的位置儲存重複的x, 這樣陣列仍然是有序的 */

array[x + 1] = x;

}void del_from_array(int array, int len, int x)

printf("del_from_array element is %d\n", x);

}void display_array(int array, int len)

printf("}\n");

}int find_not_exist(int array, int len)

else

}func_out();

/* left之前的元素都是存在的 */

return left;

}int find_duplicate(int array, int len)

查詢資料庫中不存在的ID

假設你資料庫有個a表 idname 1aaa 2bbb 3ccc 4ddd 需求 給你幾個id,返回a表中不存在的id?給你1,2,8,9 返回8,9.1.一般會這麼處理 select id from a where a.id in 1,2,8,9 然後程式處理。2.現在用乙個sql處理 sql s...

SQL查詢存在A表但不存在B表的資料

其中b表的b id欄位引用了a表的id欄位。現在有個查詢需求 給出已知的a表中的id,比如 id in 1,2,3 找出這些id在b表中沒有與之對應的記錄。比如說上面a表中的id 3這條記錄,b表中沒有b id與之對應 方式一.利用子查詢 select a.id from a a where a.i...

python刪除txt中不存在的路徑

這段時間將caltech資料集轉換成voc格式的的時候,發現存在一丟丟問題,就是將annotations資料夾裡面的xml轉換為txt後,訓練的時候才發現被標註的幾張不存在資料集中 太多,一張紙檢查不好操作,所以就寫了個簡單的py檔案來檢查一下txt檔案中哪些路徑不存在,然後重新生產乙個txt檔案 ...